2013-04-22 91 views
1

How to take advantage of Disk IO queueing
我需要完全做到這一點,但在Microsoft SQL服務器表上。
我有一個+100表的數據庫。我需要讀每個表的每個記錄。
有什麼建議嗎?值得編寫代碼做基準和調試幾秒鐘嗎?
如果我能分辨出每張表在磁盤上的位置,那將會非常好。
因爲有人會問:是的,這是我程序中的一個瓶頸。按磁盤順序讀取MSSQL表

回答

4

對於SQL Server來說,其他答案是不相關的。 SQL Server以它自己的方式執行IO操作。

一些指點,但:

  • 確保每個表都有一個聚集索引
  • 你有定期的索引維護
  • 確保你有良好的磁盤下方(RAID等)
  • 使用企業版讀前面的功能如果是關鍵的
  • 確保你有足夠的內存

這是什麼意思?

  • 如果你想在一臺工作站磁盤上使用SQL Server Express,則不要打擾。你不能優化這
  • 聚簇索引和索引維護確保磁盤上的數據大部分是連續的(受隨後的數據更改)
  • 代理多久這將需要將在所有表上運行DBCC CHECKDB 。或者ALTER INDEX重建。兩者都需要從磁盤讀取所有表的所有數據
+1

+1,「那麼不要打擾,你不能優化這個」。是的。唯一的答案我不想看到:) – Behrooz 2013-04-22 12:51:31

+0

我的意思是它的100MB,它應該在2秒內讀取不是200. – Behrooz 2013-04-22 12:59:19

+0

@Behrooz:100MB應該適合內存,所以你只需要在那裏得到它。在一個好的IO子系統上,這應該非常快 – gbn 2013-04-22 14:08:05