数据库性能调优有哪些资源?
理解主要引擎上的数据库调优并提升您在这方面的知识有什么好的资源?
这个问题的想法是收集总是存在的资源的stream量负载,以便人们可以拥有一个“一站式”的好的,同行认可的资源的知识商店。
一般SQL
- 书:SQL性能调优
- 书:SQL调整
- 书:SQL的艺术
- 书:重构SQL应用程序
- 书籍:数据库调优:原理,实验和故障排除技巧
- 使用索引,卢克! – 开发人员的数据库性能指南
PostgreSQL ( wiki )( PGsearch )
- 性能优化
- 快速的PostgreSQL优化
- 解释分析
- PostgreSQL性能提示
- 书:PostgreSQL 9.0高性能
MySQL的
- MySQL的隐藏特性
- 本书:高性能MySQL / 博客:高性能MySQL
- 博客:Xaprb(针对MySQL DBA)
神谕
- 你如何解释查询的解释计划?
- Oracle高级调优脚本
- Oracle数据库性能调优指南
- 问汤姆
- Oracle数据库SQL参考
- 书籍:了解Oracle性能
- 书:优化Oracle性能
- 书籍:Oracle性能故障排除
- 书籍:基于成本的Oracle基础知识
MS SQL Server
- SQL Server性能
- 电子书:高性能SQL Server
- SO问题:什么是最好的SQL Server性能优化技术?
- 布伦特·奥扎尔的Perf调整页面
- SqlServerPedia的Perf调整页面
- 书:Sql Server 2008内部
- 如何使用SQL Profiler识别运行速度慢的查询
Sybase SQL Anywhere
- 博客:SQL Anywhere
- 书:SQL Anywhere Studio 9开发人员指南
JDBC
- JDBC性能提示
Oracle自己的Tom Kyte在http://asktom.oracle.com上可以想象到的所有types的性能问题上都有着出色的存储库。; 他通常会花时间来重新创build具体的问题,并给出非常详细的解释。
这个人对于一个不同寻常的问题的回答可能是一个好的开始。
MySQL的隐藏特性
还有一些PostgreSQL:官方维基上的 “性能优化” 。
如果您正在使用Oracle数据库,本指南可能也有帮助。 http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/toc.htm
对于MySQL,性能调优“圣经”是高性能MySQL
快速PostgreSQL优化 (查询优化)
简短的阅读,解释了很多事情,并且“运作”了一个真实的例子,对于那些更好地学习的人来说,这是一个很好的例子。
看到维基链接到PostgreSQL后,我想编辑这篇文章的链接为MySQL / Oracle文档,不是一个真正的优化指南,但都是很好的资源,特别是MySQL的。 用于优化和其他调整function。
这里有一个很好的例子: 你如何解释查询的解释计划?
我会补充说,除了理论上调整数据库之外,还应该使用跟踪SQL调用的分析器来分析应用程序。
尽pipe你的最好的意图,一些不好的电话会偷偷进入你的应用程序,往往会导致90%的性能相关的问题。
如果您正在寻找特定于SQL Server的性能调优参考,那么在线提供的质量资源绝对会stream失,包括实施诸如分区等特定技术的白皮书,以及详细说明如何调优性能sql服务器平台。
无耻的插件如下:您可以通过查看我的个人博客的性能调整区域,或任何特定的SQL Server要求/问题随时向我发送电子邮件,开始您的研究。
SQL Server资源
SQL Server性能体面的MSSQL特定信息的站点。
- 书籍:Oracle性能故障排除(Antognini Christian)
如何使用SQL Profiler识别运行速度慢的查询是一个很好的教程,介绍如何识别运行缓慢的查询。 这将使人们将注意力集中在最需要的地方。
“SQL Performance Tuning” http://books.google.com/books?id=3H9CC54qYeEC&dq=sql+performance+tuning&printsec=frontcover&source=bn&hl=zh-CN&ei=1dDoSYmjMOrlnQfX-bSYBw&sa=X&oi=book_result&ct=result&resnum=4涵盖了大部分主要DBMS – 如何编写高性能的跨平台SQL查询等
http://www.javaperformancetuning.com/tips/jdbc.shtml
http://www.google.com/search?q=database+performance+tuning
这是另一个平台中立的高度重视的书:
Dan Tow的SQL调优:生成最佳执行计划
包含Oracle,MS SQL和IBM DB2的一些具体示例,但涉及的技术也应适用于其他平台。
对于SQL Server,我主要使用:
-
布伦特·奥扎尔的Perf调整页面
-
SqlServerPedia的Perf调整页面
Xaprb是MySQL DBA必读的博客。 作者写了一本关于高性能MySQL的书
对于使用Sybase SQL Anywhere的快乐less数人,我只能推荐Breck Carter的博客和他的“ SQL Anywhere Studio 9开发人员指南”
当我看到这种方式很快看到您在Oracle下调整的SQL语句时发生了什么,我非常高兴。 将下面的第一条SQL语句更改为您的SELECT语句,并在那里保留该提示。
SELECT /*+ GATHER_PLAN_STATISTICS */ * FROM DUAL; SELECT * FROM TABLE(dbms_xplan.display_cursor( NULL, NULL, 'RUNSTATS_LAST')) ; PLAN_TABLE_OUTPUT ----------------------------------------------------- SQL_ID 5z36y0tq909a8, child number 0 ------------------------------------- SELECT /*+ GATHER_PLAN_STATISTICS */ * FROM DUAL Plan hash value: 272002086 --------------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads | --------------------------------------------------------------------------------------------- | 1 | TABLE ACCESS FULL| DUAL | 1 | 1 | 1 |00:00:00.02 | 3 | 2 | --------------------------------------------------------------------------------------------- 12 rows selected.
哪里:
- 电子行是估计行。
- A行是实际的行。
- A-Time是实际的时间。
- 缓冲区是实际的缓冲区。
如果估计的计划与实际执行的数量级有所不同,那么你就知道你有问题了。
对于使用Oracle的人员,我推荐这个链接………….
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/toc.htm
根据我对Oracle数据库开发的经验,我发现build立一个关于如何使用SQL的知识,它是如何工作的以及知道什么是可用的(提供的函数,你不知道的从上一个版本存在或增强的子句)意味着我花了很多时间调整sql。
我将从理解数据库如何在基本层面上工作开始。 数据如何存储在磁盘上,创build索引是做什么的,查询计划优化如何工作,计划如何caching,计划何时过期。
如果你能把所有这些都留给记忆,那么大多数有关调整的build议似乎都很明显。
这是一本关于MSSQL的好书
SQL Server内部
对于Oracle, 基于成本的Oracle:基础由Jonathan Lewis 。
有时你需要知道如何解决问题一旦确定。 这将显示如何用基于集合的操作replace性能不佳的游标: http : //wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them
这是特定于SQL Server,但许多技术也可能转移到其他数据库。
对于Microsoft SQL,我推荐由Kalen Delaney(et al)所着的书“Inside SQL Server”。 它们提供了对SQL Server内部的很好的了解,从而使读者能够了解为什么特定语句可能比其他语句更快。
在SQL Server 7.0中
在SQL Server 2000内部
在Microsoft SQL Server 2005内部
Microsoft SQL Server 2008内部
还有一本专门用于SQL Server 2008查询性能调优的书: SQL Server性能调优Distilled
我也喜欢在SQLSkills.com上的Paul Randal和Kimberly Tripp的博客。 他们充满了坚实的SQLbuild议:
保罗的博客
Kimberly的博客
对于SQL Server性能调优,Itzik Ben-Gan是一个传奇。
你可以在这里find他的许多详细的书籍,用他惯常的经验测量方式来certificate他的情况: http : //tsql.solidq.com/books/index.htm
如果你正在寻找一个t-sql问题的最快解决scheme,那么在你的谷歌search词中增加“itzik”这个词。
Itzik Ben-Gan 在这里已经被提到了600多次 ,但是我不能相信在这个性能优化问题上我们没有一个提到他的人。
作为额外的资源,您还可以在YouTube上findItzik的一些关于性能相关内容的video。
Oracle网站
- 2天性能调整指南http://docs.oracle.com/cd/E11882_01/server.112/e10822/toc.htm
- 性能调整指南http://docs.oracle.com/cd/E36909_01/server.1111/e16638/toc.htm
Oracle书籍
- Oracle核心:数据库pipe理员和开发人员的必备内部乔纳森·刘易斯
- 专家Oracle数据库体系结构:Thomas Kyte编写的Oracle Database 9i,10g和11g编程技术和解决scheme
- SQL Tow Tun Dan
- Oracle数据库11g第2版性能调优技巧和技巧(Oracle Press)作者:Richard Niemiec