[SQL ] 資料庫有查詢過後速度特別快?

看板Database作者 (我的生命因你而發光)時間9年前 (2014/08/16 05:17), 編輯推噓6(6010)
留言16則, 7人參與, 最新討論串1/2 (看更多)
資料庫名稱:SQL 內容/問題描述: 目前我有一個資料表有一億筆的數據 裡面還有建立索引,因此每次要插入數據都要特別久 不過只要執行完插入數據之後,當日要查詢都變得很快 但隔天就又會是很久的狀態,不曉得是否能夠持續維持插入後的狀態嗎? 以及這是什麼原因造成的呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.235.178.103 ※ 文章網址: http://www.ptt.cc/bbs/Database/M.1408137471.A.5FC.html

08/16 07:22, , 1F
表的筆數有頻繁且大量的改變嗎?
08/16 07:22, 1F

08/16 13:29, , 2F
你說得很久 應該是第一次查很久? 後面就不會了
08/16 13:29, 2F

08/17 05:26, , 3F
數據插入資料庫時,每次都會重新建立索引嗎? 因為都要很
08/17 05:26, 3F

08/17 05:27, , 4F
久的時間,不過數據插入完畢,在當天查詢裡面資料都飛快,
08/17 05:27, 4F

08/17 05:28, , 5F
只是到了隔天查相同的SQL語法時,速度就不比昨天插入資
08/17 05:28, 5F

08/17 05:29, , 6F
料的快,是否因為插入數據時候有跑過所有資料過呢? 這是
08/17 05:29, 6F

08/17 05:29, , 7F
我比較納悶的地方,而且如何維持這樣狀態也是在尋找方法
08/17 05:29, 7F

08/17 18:52, , 8F
先看一下執行計劃吧,確認索引有被使用。
08/17 18:52, 8F

08/17 18:53, , 9F
索引有被使用也要是seek才會快,scan也是悲劇
08/17 18:53, 9F

08/20 12:36, , 10F
會不會是因為有存在buffer中,隔天buffer清掉所以較慢了?
08/20 12:36, 10F

08/21 16:16, , 11F
我一開始也是像樓上想的依樣
08/21 16:16, 11F

08/26 14:21, , 12F
我知道 Oracle有 buffer cache 但不確定SQL是不是也有
08/26 14:21, 12F

08/28 14:49, , 13F
有,你觀察一下Buffer cache ratio跟page 存活時間。
08/28 14:49, 13F

08/28 14:50, , 14F
搜索速度是Memory>CPU>>Disk,你東西不在Memory了只好從
08/28 14:50, 14F

08/28 14:51, , 15F
Disk再撈一次放到Memory,以上兩個Counter你可以盼斷記
08/28 14:51, 15F

08/28 14:54, , 16F
憶體夠不夠用,現在記憶體不貴,多插幾條吧
08/28 14:54, 16F
文章代碼(AID): #1JxdZ_Ny (Database)
文章代碼(AID): #1JxdZ_Ny (Database)