【IT168 资讯】4月15日,国内数据库领域唯一的年度盛会,由盛拓传媒IT168网站汇集旗下ITPUB、IXPUB以及ChinaUnix中国三大企业级技术社区优势资源主办的“2011数据库技术大会”在北京举行。在下午的DB2专场,首先给我们带来演讲的是时代朝阳数据库技术总监文平先生的《数据库架构设计与面向DB2工程实践》。
▲时代朝阳数据库技术总监文平先生
文平谈到,大多数应用系统的性能问题来源于SQL性能,SQL性能取决于数据库系统设计和当前数据分布,当前数据分布及其统计取决于数据库管理员的勤与检。
SQL编程中的潜在计算资源消耗要素:
排序操作,是否可使用索引的已排序特性?
类型转换,是否设置了不恰当的变量类型?
函数调用,是否函数或表达式导致索引的失败?
优化器工作,统计是否正确以及优化器
发现表、索引的低密度造成的IO、CPU问题
建议SQL编程规范
避免不必要的SQL(例:存在性测试)
减少返回的行(例:那些没有where的SQL)
仅选择必要的列(例:select *...)
单行返回和游标
避免排序(例:distinct、union)
使用索引数据排序(例:使用索引列排序或分组)
使用嵌入视图
避免数据类型转换(列和变量在类型、长度的比较)
在索引列上进行表连接
连接查询的结果集避免在多(表)列上排序
小心使用like匹配,避免前like,可使用in替换?
尽量使用exist
避免使用NOt
避免在对比中在列上使用表达式(可能索引失效)
限制不必要函数使用(计算资源、索引限制),设计相关?