測試用例:H2優化select語句/關機碎片整理
drop table master;
create table master(id int primary key, fk1 int, fk2 int, fk3 int, dataS varchar(255), data1 int, data2 int, data3 int, data4 int,data5 int,data6 int,data7 int,data8 int,data9 int,b1 boolean,b2 boolean,b3 boolean,b4 boolean,b5 boolean,b6 boolean,b7 boolean,b8 boolean,b9 boolean,b10 boolean,b11 boolean,b12 boolean,b13 boolean,b14 boolean,b15 boolean,b16 boolean,b17 boolean,b18 boolean,b19 boolean,b20 boolean,b21 boolean,b22 boolean,b23 boolean,b24 boolean,b25 boolean,b26 boolean,b27 boolean,b28 boolean,b29 boolean,b30 boolean,b31 boolean,b32 boolean,b33 boolean,b34 boolean,b35 boolean,b36 boolean,b37 boolean,b38 boolean,b39 boolean,b40 boolean,b41 boolean,b42 boolean,b43 boolean,b44 boolean,b45 boolean,b46 boolean,b47 boolean,b48 boolean,b49 boolean,b50 boolean);
create index idx_comp on master(fk1,fk2,fk3);
@loop 5000000 insert into master values(?, mod(?,100), mod(?,5), ?,'Hello World Hello World Hello World',?, ?, ?,?, ?, ?, ?, ?, ?,true,true,true,true,true,true,false,false,false,true,true,true,true,true,true,true,false,false,false,true,true,true,true,true,true,true,false,false,false,true,true,true,true,true,true,true,false,false,false,true,true,true,true,true,true,true,false,false,false,true);
1.以下select語句需要長達30秒。有沒有優化響應時間的方法?
SELECT count(*), SUM(CONVERT(b1,INT)) ,SUM(CONVERT(b2,INT)),SUM(CONVERT(b3,INT)),SUM(CONVERT(b4,INT)),SUM(CONVERT(b5,INT)),SUM(CONVERT(b6,INT)),SUM(CONVERT(b7,INT)),SUM(CONVERT(b8,INT)),SUM(CONVERT(b9,INT)),SUM(CONVERT(b10,INT)),SUM(CONVERT(b11,INT)),SUM(CONVERT(b12,INT)),SUM(CONVERT(b13,INT)),SUM(CONVERT(b14,INT)),SUM(CONVERT(b15,INT)),SUM(CONVERT(b16,INT))
FROM master
WHERE fk1=53 AND fk2=3
2.I嘗試關閉碎片整理。但是這個說法花了我的測試案例約40分鐘。關閉碎片整理後,選擇最多需要15秒。如果我再次執行語句,則需要1秒。即使停止並啓動服務器,該語句也需要大約1秒。 H2是持久性緩存嗎?
基礎設施:web瀏覽器< - > H2控制檯服務器< - > H2 DB:H2 1.3.158
查詢掃描有多少行?它看起來像是50000(不確定)。 –
SELECT COUNT(*), SUM(CONVERT(B1,整數)), SUM(CONVERT(B16,INTEGER)) FROM PUBLIC.MASTER /* PUBLIC.IDX_COMP:FK1 = 53 AND FK2 = 3 */ /* scanCount:50001 */ WHERE(FK1 = 53) AND(FK2 = 3) /*總 :55199 MASTER.IDX_COMP讀:481(0%) MASTER.MASTER_DATA讀:54718(99%) */ (1 Datensatz,27368 ms) – Peter