有什么好的资源可以帮助您理解主要引擎上的数据库调优并提高您在该领域的知识?
这个问题的想法是收集始终存在的资源,这样人们就可以有一个“一站式”的好知识商店,同行认可的资源。
通用SQL
本书:SQL性能调优
书籍:SQL调优
书:SQL的艺术
书:重构SQL应用程序
书籍:数据库调优:原理、实验和故障排除技术
使用索引,卢克!—面向开发人员的数据库性能指南
PostgreSQL (wiki)
性能优化
快速PostgreSQL优化
解释分析解释器
PostgreSQL性能提示
本书:PostgreSQL 9.0高性能
MySQL
MySQL的隐藏特性
书籍:高性能MySQL /博客:高性能MySQL
博客:Xaprb (MySQL dba)
甲骨文
如何在StackOverflow上询问Oracle调优问题
如何解释查询的解释计划?
Oracle高级调优脚本
Oracle数据库性能调优指南
问汤姆
Oracle数据库SQL参考
书籍:了解Oracle性能
书籍:优化Oracle性能
书籍:解决Oracle性能问题
本书:基于成本的Oracle基础知识
MS SQL Server
SQL Server性能
电子书:高性能SQL Server
SO问题:最好的SQL Server性能优化技术是什么?
布伦特欧扎尔的性能调优页
SqlServerPedia的性能调优页面
书:Sql Server 2008内部
如何识别运行缓慢的查询与SQL分析器
Sybase SQL Anywhere
博客:SQL Anywhere
书:SQL Anywhere Studio 9开发人员指南
JDBC
JDBC性能技巧
当我看到这种快速了解在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.
地点:
E-Rows是估计行数。
A-Rows是实际的行。
A-Time是实际时间。
缓冲区是实际的缓冲区。
如果估计的计划与实际执行存在数量级上的差异,那么您就知道有问题了。