数据库性能测试,数据库性能提升四要诀

数据库性能提升四要诀 - 故障解答 - 电脑教程网

数据库性能提升四要诀

日期:2007-09-09   荐:
这是一个常见错误:一家公司将一个性能不佳的数据库放到数量越来越多的服务器上,在投入越来越多的资金的同时犯同样的错误,但是数据库性能从未得到改善。许多性能问题源于一些基本问题。首先,雇用一位真正的DBA(数据库管理员)。如果你打算投入更多的钱来解决问题,那就将钱用在能对你有所帮助的地方。如果你承担不起雇用DBA的费用,那么请看看以下这些简单但却可以帮助你提升性能的极为有效的技术。

将数据和日志文件分别保存在不同的硬盘上

这些硬盘必须是物理硬盘(或磁盘阵列),而非只是逻辑分区。所有的数据库都具有数据和日志文件,并且没有一家厂商找到了解决将这些文件放在相同物理卷上而造成的硬盘争用问题的灵丹妙药。例如,如果你想在Windows环境中证实这点,可以调用Performance Monitor,查看“PhysicalDisk\Avg Disk Queue Length”(物理盘\平均硬盘队列长度)。这时的一个经验法则是每个处理器保持的队列长度不要超过两个。因此,如果服务器上有两个处理器,那么你保持的硬盘队列不应当超过4个。

检查索引和查询

数据库中90%的性能问题与索引/查询有关。开发人员常常编写一些可怕的查询,这些查询完全没有经过检查就被投入到生产应用中。一些最糟的查询包括:在只需要返回很少几列结果时却返回所有的列的查询、搜索标准逻辑过于复杂的查询、过多表格的查询(4个表格是合理的上限)。一些开发人员常常在建立生产数据库的索引时未经过深思熟虑。三种糟糕的索引是:没有足够的索引,过多的索引以及不正确的索引。一种分辨你是否使用有效索引的办法是将数据库的缓冲区缓存与过程缓存进行比较。如果过程缓存看起来越变越大,查询计划很可能没有被缓存。在这种情况下,就应当重新检查存储过程的重编译和执行计划的使用。另一个需要检查的指标是数据库的缓冲区管理器/页寿命期望值计数器。平均值越低,你就越可能遇到查询没有保存在缓存中的问题。

掌握服务器的内存情况

数据库服务器上的其他进程的内存泄漏也是常见问题。监测数据库的目标服务器内存计数器,将使你掌握从数据库中被偷走的内存量。当出现真正的内存泄漏时,其表现为目标服务器内存的不断减少。

为数据库服务器建立基线和基准测试

你必须全面掌握数据库的正常性能,这样才能知道它达没达到峰值。然后,将你的基准测试与基线进行比较,就会发现执行计划使用率、存储过程再编译、内存、硬盘与CPU队列以及空间使用率的变化。在检查基准测试后,你可能需要升级硬件,但是在没有获得支持你做出购买决定的可靠的数字前,不要购买任何硬件。否则,你会花很多钱,但仍没有解决问题。
标签: