SQL引起性能问题归类

应用开发抱怨数据库低效处理时,大多数实际情况是低效的设计导致低效的数据处理。在谈论性能优化时,针对SQL 问题,一部分是低效或无索引导致。另一部分是SQL 语句本身引起性能问题。做DBA 业务逻辑不熟悉的情况下,进行sql语句优化需要大量的精力。我们可以把sql语句引起性能问题进行分类,一部分是和业务逻辑有关,另一部分是和业务逻辑无关。 针对业务逻辑无关部分,我们容易独立入手优化,优化成本相对较低。针对业务逻辑有关部分,我们必须和开发人员沟通,协同合作,筛选有用信息,尝试优化,优化成本较高。

针对业务逻辑无关,能否例举或者总结一些经常出现写法问题的sql语句,我们可以根据这些例子进行举一反三或者可以形成解决问题的模板。
例如:
整型隐式转换成字符型         sql语句:  select * from t1 where id=‘1’
使用函数谓词导致没走索引     sql语句:  select * from t1 where  char(id)=1
谓词匹配的字符型长度不一致   sql语句:  select * from t1,t2 where  t1.name=t2.name  {t1.name char(4) t2.name char(8)}

针对业务逻辑有关部分,例举案例总结一些经常出现问题的sql,例如:减少不必要的查询字段、等。

还请专家归类解答,总之SQL性能优化问题多多,若按类加以归纳总结,我们就能快速学习前人经验,站在巨人的肩膀上,我们看的更远。
参与4

1同行回答

mdkiimdkii软件开发工程师bocn
这个问题要解答得比较全面的化,需要平时的收集和整理。具体的SQL是举不出例子了。我印象比较深的会导致性能问题的写法有以下一些:1、关联条件中使用量的函数。而且两个表的关联字段都用了函数。2、关联条件中使用了OR语句。3、隐性的类型转换。4、在SELECT里面用了大量的...显示全部
这个问题要解答得比较全面的化,需要平时的收集和整理。具体的SQL是举不出例子了。
我印象比较深的会导致性能问题的写法有以下一些:
1、关联条件中使用量的函数。而且两个表的关联字段都用了函数。
2、关联条件中使用了OR语句。
3、隐性的类型转换。
4、在SELECT里面用了大量的标量子查询。
以后想到还可以补充。总之,SQL是一个比较灵活的语言,很难用一个固定的条条框框去
规定到底哪些SQL是好的哪些是差的。大部分时候只能依赖于开发人员对SQL的掌握程度了。收起
银行 · 2015-06-25
浏览907

提问者

zhenda
数据库管理员昆仑银行
擅长领域: 数据库服务器云计算

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-06-24
  • 关注会员:1 人
  • 问题浏览:2027
  • 最近回答:2015-06-25
  • X社区推广