我如何学习优化SQL查询

epo*_*ter 14 sql query-optimization

我知道如何编写SQL查询并获得我需要的结果.但有时我的查询很慢,我不完全理解为什么.

学习编写有效查询和优化我已编写的查询有哪些好资源?

Red*_*ter 21

我会说主要的事情是:

  • 通过阅读像Celko这样的平台中立的书籍来理解SQL的基于集合的本质 ; 这将帮助您避免犯新手错误,例如使用不需要它们的游标(或其他迭代方法).
  • 学习规范化的基础知识以及何时进行非规范化; 高效的查询始于组织良好的数据.
  • 了解索引可以提供哪些帮助以及哪些方法无法帮助; 例如,掌握数据的基数如何影响索引效率,SARGable查询是什么,以及何时使用多列索引.
  • 了解如何在您的平台上使用EXPLAIN PLAN或其等价物 ; 通过观察查询的编译方式和消耗的资源,您将更好地理解瓶颈.
  • 学习特定于平台的方法,例如索引/物化视图,全文索引以及分页和处理分层数据的方法.


Bil*_*ard 6

自从我不得不使用它以来已经有一段时间了,但我发现SQL Tuning在我几年前的工作中非常有用.