当心空无一物,它便无边无涯。树在。山在。大地在。岁月在。我在。你还要怎样更好的世界?——张晓风《我在》
为什么要写这个内容?
随着工作经历的积累,越来越感觉到,大量的关系型数据库的性能问题,其根源在于统计信息。这里说的是根源,其实很多时候大家觉得的那些什么索引失效等都只是表象。当然,不能一概而论,还有很多问题如配置问题、设计问题等等,甚至电源也会影响性能。
之所以得出这个结论,因为在常规的开发和部署过程中,一般企业级系统已经大量使用较为高级的磁盘阵列甚至企业级SSD,IO方面的问题已经很少,而且关系数据库的理论发展跟不上硬件发展的速度,所以硬件性能问题带来的系统级别的性能问题已经很少了。
而数据库设计方面的问题,当然也是很重要的,但是对于一个用了几年的系统来说,修修补补也差不多了。
对于编码问题,其实跟索引合起来会比较好,很多时候不是索引有问题,而是你的写法导致了优化器没有用上索引。另外如果是索引问题(没有索引、有索引但没用上、索引过多等),可以看一下我另外两篇索引相关的文章:
1. SQL Server 索引维护(1)——如何获取索引使用情况

本文探讨了SQL Server统计信息对数据库性能的重要性,指出统计信息是生成高效执行计划的基础,影响包括CPU、I/O和内存资源的评估。统计信息包含表行数、列值分布等,帮助优化器做出合理决策。不准确的统计信息可能导致执行计划错误,从而影响查询性能。文章以SQL Server为例,介绍了统计信息的基础知识,并预告了后续的深入讨论。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



