1 / 25
文档名称:

sql优化和sqlmap开发规范.pptx

格式:pptx   大小:312KB   页数:25页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

sql优化和sqlmap开发规范.pptx

上传人:w447750 2018/7/4 文件大小:312 KB

下载得到文件列表

sql优化和sqlmap开发规范.pptx

相关文档

文档介绍

文档介绍:SQLREVIEW工具介绍及调优技巧
Tips and tools for creating and presenting wide format slides
大纲
SQLReview介绍
工具介绍
流程
数据库调优基础
负载模型
数据的获取方式
执行计划和优化器
OLTP 优化重点
SQL和SQLMAP
不好的SQL写法
SQLMAP编写注意点
SQLReview 工具介绍
帮助架构师、DBA、开发快速Review
可以做到
增量对比SQLMAP的变化
自动分析SQLMAP拼接SQL
执行计划的自动获取
不能做到
拼接出最准确的SQL
老SQL可能成为漏网之鱼
SQLReview 流程改变
开发发起SQL Review申请,DBA、架构师 Review
REVIEW通过才可以发布上线
REVIEW不通过,需要修改后再REVIEW
REG tag 对应的SQL Review必须完成
JAVA代码可变更、SQLMAP不再变更
所有SQLMAP文件的MD5之和
不好的SQL写法
查询条件带函数
…… member_customers where upper(alias)=upper(:P_alias)
类型不明确,隐式转换
…… product_usergroup_mapping where is_valided = 1
…… where updated_at > :P_updated_at
标量子查询在返回列上
select (select real_name from xxx where id=) ……
太多的表关联
select …… from a, b, c, d, e ……
复杂业务排序
…… order by ( case when status=‘9’ then 1 …), updated_at
NULL 作为主条件
…… where PARENT_ID is NULL
SQLMAP编写注意点(1)
这不是JAVA,不要切分太多模块相互组合拼接
LIST-APP 的例子
SQLMAP编写注意点(2)
全动态条件拼接,毫无重点
select count from iw_user usr
<dynamic prepend="where">
  <isNotEmpty prepend="AND" property="userId">
    = #userId:varchar#
  </isNotEmpty>
  <isNotEmpty prepend="AND" property="email">
    = #email:varchar#
  </isNotEmpty>
  <isNotEmpty prepend="AND" property="certType">
    = #certType:varchar#
  </isNotEmpty>
  <isNotEmpty prepend="AND" property="certNo">
    = #certNo:varchar#
  </isNotEmpty>
</dynamic>
select count from iw_user usr
<dynamic prepend="where">
  <isNotEmpty prepend="AND" property="userId">
    = #userId:varchar#
  </isNotEmpty>
  <isNotEmpty prepend="AND" property="email">
    = #email:varchar#
  </isNotEmpty>
  <isNotEmpty prepend="AND" property="certType">
    = #certType:varchar#
  </isNotEmpty>
  <isNotEmpty prepend="AND" property="certNo">
    = #certNo:varchar#
  </isNotEmpty>
  <isEmpty property="userId">
    <isEmpty property="email">
      <isEmpty property="certNo">
        ***@query not allowed
      </isEmpty>
    </isEmpty>
  </isEmpty>
</dy

最近更新