2013-04-22 88 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