Answers:
数据库系统中最慢的部分是磁盘驱动器。消除磁盘级别的瓶颈将提高性能。在查找数据并使用索引时,首先查找索引,然后获取相应的数据。如果索引和数据都在同一磁盘上,则说明正在发生某些争用。而如果数据位于不同的(物理)磁盘上,则IO发生的速度更快,从而提高了性能。需要注意的主要部分是数据或索引位于单独的物理磁盘或LUN上。
如果您需要从磁盘中获得更好的性能,则可以使用这种方案。为了您的性能计数器,您可以使用Physical Disk – Avg. Disk sec/Read
,Physical Disk – Avg. Disk sec/Write
,Physical Disk – Disk Reads/sec
,Physical Disk – Disk Writes/sec
之前和你的修改比较后有一个。
的确,在不同的驱动器之间同时分配I / O可以提高性能-这不是神话。神话是两次执行将再次提高性能。
如果您使用SAME,则将数组分成两个分区,将索引放在一个分区上,将表放在另一个分区上是浪费时间。
将数据中的索引分开到单独的文件组中=性能提高值得商bat。如果您有底层硬件来支持它,则性能可能会“提高”,但仅仅是将它们分离到不同的文件组并不能提高性能。因此,测量性能提升也不容易。
参考:http : //weblogs.sqlteam.com/dang/archive/2008/08/01/Are-you-a-DBA-Monkey.aspx
你应该先问这个问题。为什么需要这样做?
我查看了此任务以支持上述列表中对#5的需求,尽管我们尚未对此采取行动,但对我来说似乎是一个不错的建议。
请注意,此决定并非那么容易做出,您需要弄清楚您要做什么,并确保您有支持的硬件。除非您进行了很好的测试,并且在性能方面有了显着提高,否则请勿进行此类更改。否则,您最好放弃这个想法。如果仅通过将索引分隔到单独的文件组中来期望提高性能,那是不值得的。
一般来说; 将数据和索引拆分到单独的类似执行的磁盘上,可以提高对该表的大量写入操作或利用该索引的大型读取操作的性能。与某些其他I / O操作类似的方法,例如跨多个物理磁盘的分区表。
但是,它在很大程度上也取决于存储。例如; 如果您的服务器配备了不错的Fushion ioDrive(或类似的产品),并且还具有单独的旋转磁盘。将所有内容保留在ioDrive上可能更为有益(除非空间有限)。还需要考虑其他事项-RAID配置,网络存储配置。
在具有类似硬件的测试服务器上或在非高峰时段使用临时数据在(仅当没有辅助服务器的情况下)在测试服务器上进行一些基准测试。上面Sankar的DBA-Monkey链接令人深思。