看板 Database 關於我們 聯絡資訊
資料庫名稱:SQL 內容/問題描述: 目前我有一個資料表有一億筆的數據 裡面還有建立索引,因此每次要插入數據都要特別久 不過只要執行完插入數據之後,當日要查詢都變得很快 但隔天就又會是很久的狀態,不曉得是否能夠持續維持插入後的狀態嗎? 以及這是什麼原因造成的呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.235.178.103 ※ 文章網址: http://www.ptt.cc/bbs/Database/M.1408137471.A.5FC.html
bohei: 表的筆數有頻繁且大量的改變嗎? 08/16 07:22
GoalBased: 你說得很久 應該是第一次查很久? 後面就不會了 08/16 13:29
jami520: 數據插入資料庫時,每次都會重新建立索引嗎? 因為都要很 08/17 05:26
jami520: 久的時間,不過數據插入完畢,在當天查詢裡面資料都飛快, 08/17 05:27
jami520: 只是到了隔天查相同的SQL語法時,速度就不比昨天插入資 08/17 05:28
jami520: 料的快,是否因為插入數據時候有跑過所有資料過呢? 這是 08/17 05:29
jami520: 我比較納悶的地方,而且如何維持這樣狀態也是在尋找方法 08/17 05:29
rockchangnew: 先看一下執行計劃吧,確認索引有被使用。 08/17 18:52
rockchangnew: 索引有被使用也要是seek才會快,scan也是悲劇 08/17 18:53
jeamie: 會不會是因為有存在buffer中,隔天buffer清掉所以較慢了? 08/20 12:36
GoalBased: 我一開始也是像樓上想的依樣 08/21 16:16
wilsmart: 我知道 Oracle有 buffer cache 但不確定SQL是不是也有 08/26 14:21
Minervus: 有,你觀察一下Buffer cache ratio跟page 存活時間。 08/28 14:49
Minervus: 搜索速度是Memory>CPU>>Disk,你東西不在Memory了只好從 08/28 14:50
Minervus: Disk再撈一次放到Memory,以上兩個Counter你可以盼斷記 08/28 14:51
Minervus: 憶體夠不夠用,現在記憶體不貴,多插幾條吧 08/28 14:54