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

作者: jami520 (我的生命因你而發光)   2014-08-16 05:17:48
資料庫名稱:SQL
內容/問題描述:
目前我有一個資料表有一億筆的數據
裡面還有建立索引,因此每次要插入數據都要特別久
不過只要執行完插入數據之後,當日要查詢都變得很快
但隔天就又會是很久的狀態,不曉得是否能夠持續維持插入後的狀態嗎?
以及這是什麼原因造成的呢? 謝謝
作者: bohei (run and fall)   2014-08-16 07:22:00
表的筆數有頻繁且大量的改變嗎?
作者: GoalBased (Artificail Intelligence)   2014-08-16 13:29:00
你說得很久 應該是第一次查很久? 後面就不會了
作者: jami520 (我的生命因你而發光)   2014-08-17 05:26:00
數據插入資料庫時,每次都會重新建立索引嗎? 因為都要很久的時間,不過數據插入完畢,在當天查詢裡面資料都飛快,只是到了隔天查相同的SQL語法時,速度就不比昨天插入資料的快,是否因為插入數據時候有跑過所有資料過呢? 這是我比較納悶的地方,而且如何維持這樣狀態也是在尋找方法
作者: rockchangnew (rock)   2014-08-17 18:52:00
先看一下執行計劃吧,確認索引有被使用。索引有被使用也要是seek才會快,scan也是悲劇
作者: jeamie (jeamie)   2014-08-20 12:36:00
會不會是因為有存在buffer中,隔天buffer清掉所以較慢了?
作者: GoalBased (Artificail Intelligence)   2014-08-21 16:16:00
我一開始也是像樓上想的依樣
作者: wilsmart ( Je t'aime)   2014-08-26 14:21:00
我知道 Oracle有 buffer cache 但不確定SQL是不是也有
作者: Minervus   2014-08-28 14:49:00
有,你觀察一下Buffer cache ratio跟page 存活時間。搜索速度是Memory>CPU>>Disk,你東西不在Memory了只好從Disk再撈一次放到Memory,以上兩個Counter你可以盼斷記憶體夠不夠用,現在記憶體不貴,多插幾條吧

Links booklink

Contact Us: admin [ a t ] ucptt.com