【问题标题】:read MSSQL tables in disk order按磁盘顺序读取 MSSQL 表
【发布时间】:2013-04-15 08:50:01
【问题描述】:

How to take advantage of Disk IO queueing
我需要在 Microsoft SQL 服务器表上执行此操作。
我有一个包含 +100 个表的数据库。我需要读取每个表的每条记录。
有什么建议?写几秒钟的基准测试和调试代码值得吗?
如果我能知道每个表在磁盘上的位置,那就太好了。
因为有人会问:是的,这是我程序的瓶颈。

【问题讨论】:

    标签: sql-server performance io disk


    【解决方案1】:

    其他答案与 SQL Server 无关。 SQL Server 以自己的方式进行 IO。

    一些建议:

    • 确保每个表都有聚集索引
    • 您有定期索引维护
    • 确保下面有良好的磁盘(RAID 等)
    • 如果非常重要,请使用企业版来实现预读功能
    • 确保您有足够的 RAM

    这是什么意思?

    • 如果您想在单个工作站磁盘上使用 SQL Server Express,请不要打扰。您无法对此进行优化
    • 拥有聚集索引和索引维护可确保数据在磁盘上大部分是连续的(受后续数据更改的影响)
    • 代理需要多长时间才能在所有表上运行 DBCC CHECKDB。或 ALTER INDEX 重建。两者都需要从磁盘读取所有表的所有数据

    【讨论】:

    • +1, "那就不用麻烦了。你不能优化这个"。是的。我不想看到的唯一答案:)
    • @Behrooz:100MB 应该适合内存,所以你只需要把它放在那里。在一个好的 IO 子系统上,这应该很快
    猜你喜欢
    • 1970-01-01
    • 2017-02-28
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 2012-11-05
    相关资源
    最近更新 更多