做了20多年软件,用了20多年的oracle数据库,SQL调优方面有些心得。看到一些新入行的dba或者程序员朋友对SQL调优无从下手,觉得可以提供一点帮助,所以在此开贴,有SQL调优需要的朋友可以通过评论告诉我,我看到了会尽量及时回复。虽然各种数据库SQL语法有所不同,但是原理都是一样的。所以,问题不用限制在oracle,各种数据库均可。当然了,sql调优之外的问题也可以提,我知道的都会尽量帮助解答。
有需要调优的sql,提交SQL时,请连带提交相关表结构,索引结构,执行计划,以及表行数估计,查询条件列的唯一值估计,不需要很精确。有了这些信息,就可以有效的进行sql调优了。
例如提供如下信息:*
--提供SQL:例如
SELECT * from table1 t1 ,table2 t2 where t1.a = t2.b and t1.c = 'd';
--提供表和索引结构,包括table1,table2 的建表语句和建索引语句。语句太长,可以把重复性的内容删除,留下主要的即可。`
create table table1 (a Number(10),b varchar2(32),c ...);
create index .....
--提供执行计划。
。。。。。
提供数据量估计。
table1 100万量级。
table2 2000万量级
table1.a 唯一键。
table2.b 唯一键。
table1.c 10个唯一值。
。。。。。
我知道这里可以通过评论的方式跟作者沟通交流,不知道效果如何,暂且试试吧。选这里主要是因为这里有很多程序员会访问,也可以通过搜索引擎搜索到,微信公众号就不是很方便,外面搜索不到。如果谁有更合适的地方开这种帖子,可以推荐给我,哪里无所谓,希望能方便沟通,能帮到更多的人就好。
欲买桂花同载酒,终不是,少年游。一个老程序员,今天在此做一次少年游,大家不要见笑。
2025-04-18