成都网站推广
 

中联无限-服务热线:028-86637122 工作时间:9:00-18:00 星期一-星期五

 
首页 | 关于我们 | 新闻动态 | 成都网站建设 | 成都网站推广 | 成都微信营销 | 网站制作案例 | 软件开发 | 常见问题 | 域名注册 | 虚拟主机
  网站知识
     推荐工具 / Tools
     网站运营/Operation
  
  客户案例
·巨丰达人减肥训练营
·成都写意经典家具有限公司
·成都卡姆士安防设备有限公司
·新千里装饰集团
·成都吕氏三才中医博爱堂
·泊菲特语言学校
·四川高地易景园林工程公司
·成都烽火建筑装饰设计有限公司
·优尼客酒店
·成都杜嘉机电有限公司
·菲颖1购
·成都安东尼体育文化传播有限公
·四川九章生物化工科技发展有限
·成都环球体育文化传播有限公司
·万友爱淘网上商城
·四川省斯博兰德建筑装饰设计有
·肥犇仔
·成都市猛追湾游泳场
  网站运营
·企业新站推广中存在的六大误区
·网站运营之八大要素
·怎么区别网站运营与网络运营
·怎样区分网站运营和网络运营
·SQL Server 200
·新网站运营后如何迅速增加网站
·减肥网站是怎样提高收入的
·个人网站赢利模式的拓展方向
·商业门户网站运营模式探讨
·成都地方门户网站运营模式
·网站策划人如何盈利
·网站运营模式观察与分析
  最新资讯
·成都网络推广公司介绍的六种推
·分析导致成都网络推广效果差的
·成都网站优化:企业网站关键词
·成都网站优化初期企业应该需要
·浅析成都网站优化中企业如何建
·分析企业在做成都网站优化过程
·短视频营销可以为成都网络推广
·小品牌怎么样才能既省钱又省力
·分析成都网络推广中企业需要注
·如何根据成都网络推广的营销周
·成都网站优化需要遵循哪些规则
·成都SEO网站优化过程中如何
 
   您的位置在:成都网站推广 > 网站知识 > 网站教程 /Tutorial > 正文
   网站教程 /Tutorial

优化一个SQL案例给我们的思考

[ 来源:中联无限科技有限公司   发布日期:2010/12/17 10:21:27 ]
今天给大家介绍一个SQL优化案例,这是statpack中逻辑读排名第一的SQL.当前 创建的索引建在(username,ends,approve_status,promoted_status)上。 以下是引用片段:   BufferGetsExecutionsGetsperExec%TotalTime(s)Time(s)HashValue   ----------------------------------------------------------------- -------   116,608,373164,083710.740.67027.0711922.303701069644   Module:java@test.cm2(TNSV1-V3)   selectcount(*)fromtest   whereusername=:1--这是一个高势列,   andends>sysdate   andapprove_statusin(0,1,-9)   andid<>:2--这是主键   andpromoted_status=1   如果大家见到这样的SQL语句会怎么样优化?通常的做法,是在当前索引中冗 余id字段,以避免回表。但这样要去调整这张大表的索引.

今天给大家介绍一个SQL优化案例,这是statpack中逻辑读排名第一的SQL.当前
创建的索引建在(username,ends,approve_status,promoted_status)上。 
以下是引用片段:
  BufferGetsExecutionsGetsperExec%TotalTime(s)Time(s)HashValue
  -----------------------------------------------------------------
-------
  116,608,373164,083710.740.67027.0711922.303701069644
  Module:java@test.cm2(TNSV1-V3)
  selectcount(*)fromtest
  whereusername=:1--这是一个高势列,
  andends>sysdate
  andapprove_statusin(0,1,-9)
  andid<>:2--这是主键
  andpromoted_status=1
  如果大家见到这样的SQL语句会怎么样优化?通常的做法,是在当前索引中冗
余id字段,以避免回表。但这样要去调整这张大表的索引.
  在看到上面的SQL后,询问开发能否明确的知道id=:2并且满足其它条件的这
样的记录是否一定存在。开发经过查证后,最后的答复是无法肯定.既然在应用
层无法确定,那也要想个办法来解决大量回表的问题。在经过仔细观察后,我将
上面这条SQL语句转换成下面两条SQL以及最后一步应用逻辑来实现:
  第一条SQL:
  Select/*+ index(a, PK_test_ID) */ count(*) from test a
  where id=:1 and ends>sysdate and approve_status in (0,1,-9) and 
promoted_status = 1 and username=:2
  第二条SQL:
  select count(*) from test
  where username = :1 and ends>sysdate and approve_status in (0,1,-
9) and and promoted_status = 1
  第三步,将两个结果相减即可实现业务
  我们在做SQL优化时,如何把一条SQL根据需要等价转化成多条,需要考虑当
前的应用逻辑,以及当前数据库中索引的情况,优化便会事半功倍。如何跳出

中联无限科技公司提供专业的成都网站建设成都网站设计成都网站制作成都网站推广


上一篇:Linux如何自动备份MySQL数据库
下一篇:如何处理网页文字
   相关网站教程 /Tutorial
·SEO之如何更好的布局?2011-08-11
·Ajax2011-05-26
·JSP的定义2011-05-26
·PHP是什么2011-05-26
·CSS教程:CSS背景全攻略2011-03-26
·javascript cookies 存2011-03-25
·网站外部链接的注意事项2011-03-24
·PHP防御木马攻击的技巧2011-03-11
·Apache服务器的配置与管理2011-03-11
·SQL Server数据库查询优化的常用2011-03-09
·SQL Server触发器2011-03-09
·ASP.NET JMAIL 发送邮件方法2011-03-09
首页 | 公司简介 |联系方式 |付款方式 |人才招聘 | 域名空间 | 网页设计案例 | 网站知识 | 解决方案 | 建站指南 | 网站地图
地址:成都市青羊区西大街1号   邮编:610041   E- Mail:619027769@qq.com   代理合作: 028-86637122
网站建设/推广咨询:028-86637122  86618860  传真:028-86637322   
成都中联无限科技有限公司 2004-2014    蜀ICP备05017733号