很多时候我们都听到同样的话。关于在何处放置 OLAP/OLTP 数据库、在何处放置tempdb、在何处放置事务日志等的建议。
但是假设您所处的环境中存储的物理定义对您来说是个谜。换句话说,你肯定能看到逻辑驱动器,你可以给系统管理员打电话并要求更多空间,但你永远不知道什么是不同的物理驱动器(比如幕后有 SAN 或 NAS)。如果您实际上并不知道这一点,那么如何通过将遭受重创的tempdb数据库放在不同的物理驱动器上来遵循最佳实践呢?
这方面的最佳做法是什么?
很多时候我们都听到同样的话。关于在何处放置 OLAP/OLTP 数据库、在何处放置tempdb、在何处放置事务日志等的建议。
但是假设您所处的环境中存储的物理定义对您来说是个谜。换句话说,你肯定能看到逻辑驱动器,你可以给系统管理员打电话并要求更多空间,但你永远不知道什么是不同的物理驱动器(比如幕后有 SAN 或 NAS)。如果您实际上并不知道这一点,那么如何通过将遭受重创的tempdb数据库放在不同的物理驱动器上来遵循最佳实践呢?
这方面的最佳做法是什么?
我要做的是对更改前后的性能进行基准测试。将 tempdb 移动到另一个驱动器后,性能应该会有所提高。使用像sys.dm_io_virtual_file_stats这样的DMV来查看数据库文件的读写等待时间。
使用 perfmon 物理磁盘计数器:Avg。磁盘秒/读取,平均。磁盘秒/写、磁盘读取/秒、磁盘写入/秒。这些指标的变化会让您知道磁盘是物理上分开的还是只是逻辑上分开的相同磁盘。
想要为您的磁盘使用第三方磁盘基准测试工具,以便 SAN 管理员无法将其结果归咎于 SQL Server?使用SQLIO。虽然名字里有SQL,但是这个工具不需要SQL server运行,与SQL server无关。
这是一个很好的问题,我期待看到其他答案。
稍微正交的答案...
尝试将本地磁盘用于 tempdb,并将用户数据库留在 SAN/NAS 上。这并没有解决您在 SAN 的“黑匣子”中遇到的问题,但它确实允许您将 tempdb 与网络分离。带有集群的 YMMV。
我也发现的一件事是,假设您的 SAN 管理员不是完整的傀儡/小气鬼,您必须拥有大量的数据才能让它变得太重要。