技术开发 频道

数据库系统设计:SQL设计和编程误区

  【IT168 资讯】4月15日,国内数据库领域唯一的年度盛会,由盛拓传媒IT168网站汇集旗下ITPUB、IXPUB以及ChinaUnix中国三大企业级技术社区优势资源主办的“2011数据库技术大会”在北京举行。在下午的DB2专场,首先给我们带来演讲的是时代朝阳数据库技术总监文平先生的《数据库架构设计与面向DB2工程实践》。

数据库系统设计:SQL设计和编程误区
▲点击查看专题报道

数据库系统设计:SQL设计和编程误区
▲时代朝阳数据库技术总监文平先生

  文平谈到,大多数应用系统的性能问题来源于SQL性能,SQL性能取决于数据库系统设计和当前数据分布,当前数据分布及其统计取决于数据库管理员的勤与检。

  SQL编程中的潜在计算资源消耗要素:

  排序操作,是否可使用索引的已排序特性?

  类型转换,是否设置了不恰当的变量类型?

  函数调用,是否函数或表达式导致索引的失败?

  优化器工作,统计是否正确以及优化器

  发现表、索引的低密度造成的IO、CPU问题

  建议SQL编程规范

  避免不必要的SQL(例:存在性测试)

  减少返回的行(例:那些没有where的SQL)

  仅选择必要的列(例:select *...)

  单行返回和游标

  避免排序(例:distinct、union)

  使用索引数据排序(例:使用索引列排序或分组)

  使用嵌入视图

  避免数据类型转换(列和变量在类型、长度的比较)

  在索引列上进行表连接

  连接查询的结果集避免在多(表)列上排序

  小心使用like匹配,避免前like,可使用in替换?

  尽量使用exist

  避免使用NOt

  避免在对比中在列上使用表达式(可能索引失效)

  限制不必要函数使用(计算资源、索引限制),设计相关?

0
相关文章