測試平臺:Postgresql 8.3.5 ,DotNet 2.0, Ado.net驅動 1.1, WinXp Sp3,
迅馳 1.8G Hz, 內存 2G
數據插入實驗中數據插入的時間包含生成GUID的耗時和更新界面進度條的耗時
查詢的時間僅包含讀取數據庫的時間
測試查詢語句:
從表查詢:
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "szValue" ilike '%...%'
主表查詢:
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "szSoftName" ilike '%...%'
建庫語句:
CREATE DATABASE testpsql
WITH OWNER = postgres
ENCODING = 'UTF8';
CREATE TABLE "TST_Sort_T"
(
"nSortId" serial NOT NULL,
"szSoftName" character varying(255),
CONSTRAINT "TST_Sort_SortId_PK" PRIMARY KEY ("nSortId")
)WITH (OIDS=FALSE);
CREATE INDEX "TST_Sort_SortName_I" ON "TST_Sort_T" USING btree ("szSoftName");
CREATE TABLE "TST_Value_T"
(
"nValueId" bigserial NOT NULL,
"nSortId" serial NOT NULL,
"szValue" character varying(255),
CONSTRAINT "TST_Value_ValueId_PK" PRIMARY KEY ("nValueId"),
CONSTRAINT "TST_Value_SoftId_FK" FOREIGN KEY ("nSortId")
REFERENCES "TST_Sort_T" ("nSortId") MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)WITH (OIDS=FALSE);
CREATE INDEX "TST_Value_Value_I" ON "TST_Value_T" USING btree ("szValue");
數據插入
=====================================================
主表記錄:0 從表記錄:0
主表插入 從表插入 耗時
1000 1000×10 8秒 156毫秒
1000 1000×10 7秒 593毫秒
1000 1000×10 7秒 515毫秒
數據查詢:
=====================================================
主表記錄:3000 從表記錄:30000
查詢出的記錄數量 查詢條件篩選 耗時
2838 從表 218 毫秒
25586 從表 343 毫秒
25800 主表 203 毫秒
220 主表 31 毫秒
數據插入
=====================================================
主表記錄:3000 從表記錄:30000
主表插入 從表插入 耗時
10000 10000×10 1分 20秒 328毫秒
10000 10000×10 1分 24秒 109毫秒
10000 10000×10 1分 21秒 828毫秒
數據查詢:
=====================================================
主表記錄:33000 從表記錄:330000
查詢出的記錄數量 查詢條件篩選 耗時
1977 從表 2秒 62 毫秒
282379 從表 4秒 687 毫秒
33323 從表 2秒 312 毫秒
132 從表 1秒 921 毫秒
130 主表 312 毫秒
33200 主表 531 毫秒
282330 主表 4秒 15 毫秒
2410 主表 328 毫秒
數據插入
=====================================================
主表記錄:33000 從表記錄:330000
主表插入 從表插入 耗時
100000 100000×10 53分 6秒 390毫秒
100000 100000×10 1小時 49 分 3秒 562毫秒
100000 100000×10 2小時 35分 54秒 281 毫秒
數據查詢:
=====================================================
主表記錄:333000 從表記錄:3330000
查詢出的記錄數量 查詢條件篩選 耗時
18848 從表 20秒 468 毫秒
1124 從表 21秒 671毫秒
0 從表 20秒 375毫秒
32915 從表 20秒 328毫秒
33050 主表 3秒 562 毫秒
130 主表 3秒 265 毫秒
0 主表 1秒 890 毫秒
379750 主表 19秒 859毫秒
數據插入
=====================================================
主表記錄:333000 從表記錄:3330000
主表插入 從表插入 耗時
100000 100000×10 2小時 36分 5秒 218 毫秒
(中間在主表中插入 250000,從表 250000X10, 運行中間出錯 )
主表記錄:668592 從表記錄:6685920
1000 1000×10 1分 17秒 31毫秒
1000 1000×10 1分 26秒 921毫秒
20000 20000×10 33分 16秒 625毫秒
200000 200000*10 6小時 17分 3秒 718 毫秒
200000 200000*10 5小時 59分 19秒 437 毫秒
數據查詢:
=====================================================
主表記錄:1103574 從表記錄:11035740
查詢出的記錄數量 查詢條件篩選 耗時
63033 從表 127093 ms
0 從表 57687 ms
88275 從表 128000 ms
974 從表 66860 ms
1030 主表 10406 ms
0 主表 5610 ms
88480 主表 57921 ms
390 主表 14797 ms
整數索引查詢
從表查詢:
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" >100 and "nValueId" < 10000
查詢總耗時: 641 ms.
檢索到 9899 行。
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" >100 and "nValueId" < 100000
查詢總耗時: 72843 ms.
檢索到 99899 行。
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" >100000 and "nValueId" < 110000
查詢總耗時: 609 ms.
檢索到 9999 行。
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" >900000 and "nValueId" < 910000
查詢總耗時: 1219 ms.
檢索到 9999 行。
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on
"TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" = 100000
查詢總耗時: 0 ms.
檢索到 1 行。
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on
"TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" = 9900000
查詢總耗時: 94 ms.
檢索到 1 行。
數據索引非常快,無須做主表的數字索引查詢
我主要測試的是查詢速度,在做數據插入時,晚上開機測試,同時在下載,下載速度越200多K,故對數據庫插入應該有些影響。
~~The END~~
尹曙光
迅馳 1.8G Hz, 內存 2G
數據插入實驗中數據插入的時間包含生成GUID的耗時和更新界面進度條的耗時
查詢的時間僅包含讀取數據庫的時間
測試查詢語句:
從表查詢:
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "szValue" ilike '%...%'
主表查詢:
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "szSoftName" ilike '%...%'
建庫語句:
CREATE DATABASE testpsql
WITH OWNER = postgres
ENCODING = 'UTF8';
CREATE TABLE "TST_Sort_T"
(
"nSortId" serial NOT NULL,
"szSoftName" character varying(255),
CONSTRAINT "TST_Sort_SortId_PK" PRIMARY KEY ("nSortId")
)WITH (OIDS=FALSE);
CREATE INDEX "TST_Sort_SortName_I" ON "TST_Sort_T" USING btree ("szSoftName");
CREATE TABLE "TST_Value_T"
(
"nValueId" bigserial NOT NULL,
"nSortId" serial NOT NULL,
"szValue" character varying(255),
CONSTRAINT "TST_Value_ValueId_PK" PRIMARY KEY ("nValueId"),
CONSTRAINT "TST_Value_SoftId_FK" FOREIGN KEY ("nSortId")
REFERENCES "TST_Sort_T" ("nSortId") MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)WITH (OIDS=FALSE);
CREATE INDEX "TST_Value_Value_I" ON "TST_Value_T" USING btree ("szValue");
數據插入
=====================================================
主表記錄:0 從表記錄:0
主表插入 從表插入 耗時
1000 1000×10 8秒 156毫秒
1000 1000×10 7秒 593毫秒
1000 1000×10 7秒 515毫秒
數據查詢:
=====================================================
主表記錄:3000 從表記錄:30000
查詢出的記錄數量 查詢條件篩選 耗時
2838 從表 218 毫秒
25586 從表 343 毫秒
25800 主表 203 毫秒
220 主表 31 毫秒
數據插入
=====================================================
主表記錄:3000 從表記錄:30000
主表插入 從表插入 耗時
10000 10000×10 1分 20秒 328毫秒
10000 10000×10 1分 24秒 109毫秒
10000 10000×10 1分 21秒 828毫秒
數據查詢:
=====================================================
主表記錄:33000 從表記錄:330000
查詢出的記錄數量 查詢條件篩選 耗時
1977 從表 2秒 62 毫秒
282379 從表 4秒 687 毫秒
33323 從表 2秒 312 毫秒
132 從表 1秒 921 毫秒
130 主表 312 毫秒
33200 主表 531 毫秒
282330 主表 4秒 15 毫秒
2410 主表 328 毫秒
數據插入
=====================================================
主表記錄:33000 從表記錄:330000
主表插入 從表插入 耗時
100000 100000×10 53分 6秒 390毫秒
100000 100000×10 1小時 49 分 3秒 562毫秒
100000 100000×10 2小時 35分 54秒 281 毫秒
數據查詢:
=====================================================
主表記錄:333000 從表記錄:3330000
查詢出的記錄數量 查詢條件篩選 耗時
18848 從表 20秒 468 毫秒
1124 從表 21秒 671毫秒
0 從表 20秒 375毫秒
32915 從表 20秒 328毫秒
33050 主表 3秒 562 毫秒
130 主表 3秒 265 毫秒
0 主表 1秒 890 毫秒
379750 主表 19秒 859毫秒
數據插入
=====================================================
主表記錄:333000 從表記錄:3330000
主表插入 從表插入 耗時
100000 100000×10 2小時 36分 5秒 218 毫秒
(中間在主表中插入 250000,從表 250000X10, 運行中間出錯 )
主表記錄:668592 從表記錄:6685920
1000 1000×10 1分 17秒 31毫秒
1000 1000×10 1分 26秒 921毫秒
20000 20000×10 33分 16秒 625毫秒
200000 200000*10 6小時 17分 3秒 718 毫秒
200000 200000*10 5小時 59分 19秒 437 毫秒
數據查詢:
=====================================================
主表記錄:1103574 從表記錄:11035740
查詢出的記錄數量 查詢條件篩選 耗時
63033 從表 127093 ms
0 從表 57687 ms
88275 從表 128000 ms
974 從表 66860 ms
1030 主表 10406 ms
0 主表 5610 ms
88480 主表 57921 ms
390 主表 14797 ms
整數索引查詢
從表查詢:
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" >100 and "nValueId" < 10000
查詢總耗時: 641 ms.
檢索到 9899 行。
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" >100 and "nValueId" < 100000
查詢總耗時: 72843 ms.
檢索到 99899 行。
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" >100000 and "nValueId" < 110000
查詢總耗時: 609 ms.
檢索到 9999 行。
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on "TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" >900000 and "nValueId" < 910000
查詢總耗時: 1219 ms.
檢索到 9999 行。
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on
"TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" = 100000
查詢總耗時: 0 ms.
檢索到 1 行。
select "szSoftName","szValue" from "TST_Sort_T" inner join "TST_Value_T" on
"TST_Sort_T"."nSortId"="TST_Value_T"."nSortId"
where "nValueId" = 9900000
查詢總耗時: 94 ms.
檢索到 1 行。
數據索引非常快,無須做主表的數字索引查詢
我主要測試的是查詢速度,在做數據插入時,晚上開機測試,同時在下載,下載速度越200多K,故對數據庫插入應該有些影響。
~~The END~~
尹曙光