gee*_*ner
6
performance
sql-server
latch
第一次发帖,希望我做对了。
我是一个“偶然的 dba”,他正在学习很多东西,但不可否认还有很多东西要学。这是我的大脑转储:
- Prod 服务器有 500 万行。我将这些行复制到测试服务器。
- 使用 SNAPSHOT 或 READ UNCOMMITTED 会产生不同的经过时间,但 Prod 和 Test 之间的比率始终约为 5:1(SNAPSHOT 为 14 分钟:3 分钟,READ UNCOMMITTED 为 4 分钟:sub-1)
- 使用 STATISTICS IO ON 显示 Prod 上的大多数读取是逻辑的(~90%),而 Test 上的读取都不是逻辑的。我想这应该意味着 Prod 会更快。
- 大多数时间似乎将等待“PAGEIOLATCH_SH”类型。
- 我不认为不同的统计数据无关紧要,因为不应在未过滤、未连接、未排序的查询上使用任何索引。
- 选择两台服务器上的前 n 行显示了一个非常线性的比例……比例总是 ~5:1。
- 比较不是一一对应,但我认为唯一相关的区别是活动和存储。
- 我在几乎没有活动时进行了比较,并看到了相同的结果。
- 我发现 autogrowth 设置为 1MB(呃),我已经改变了,但我想知道这是否导致文件系统级别的存储碎片化。
- 该数据库位于与 Windows 安装不同的卷上,但它确实与 tempdb 和 FILESTREAM 存储共享一个卷,我认为这也可能导致存储碎片化。
- “优化驱动器”Windows 实用程序表示该卷“正常(98% 空间效率)”,这似乎表明文件系统碎片可能不是问题。
问题:
我上面的想法和假设是否正确?
在我的思考过程中有什么我公然忽视的吗?
在此故障排除过程的后续步骤中,哪些是合适的候选者?
我可以/应该提供哪些其他信息?
感谢您的关注和帮助!
编辑:在第二条语句中添加了剩余时间信息。