动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.Oracle Database缓冲区漏洞.
.详细讲解获得当前"SCN"的几种有效.
.全面介绍Oracle的诊断事件.
.Oracle分区功能提高应用程序性能.
.帮你解决Oracle 9i和Tomcat的端口.
.Oracle起动库时1102报错处理.
.gnome菜单编辑解决方案.
.Oracle电子邮件系统危机重挫CIO.
.ORACLE入门之关于用户管理.
.利用oradim重建Oracle服务(转).
.如何给表、列加注释.
.中关键技术及难点.
.Oracle基本数据类型存储格式浅析.
.用脚本和查询主动监视Oracle 9i性.
.使用oralce Cursor.
.ORA-01810: 格式代码出现两次.
.ORACLE SQL性能优化系列 (十).
.Oracle系统中表外键的更名.
.Oracle 最常用功能函数经典汇总.
.Oracle CEO:IBM DB2 已过时 微软.

SQL 调试指南

发表日期:2008-2-9 |



  一 概述
  
  我的工作是开发移动电信操作系统. 当客户通过网络或语音终端申请一项服务的时候, 我们的系统必须提供一个快速的回应. 即使是要求不到一秒的回答时限, 我们仍然需要在容量巨大的DB端执行复杂的SQL语句.
  
  在这种情况下, 一个简单的低效率的查询会带来灾难性的后果. 一个不合适的SQL语句有可能耗尽整个DB的处理资源, 这样一来就导致DB不能处理其他的客户请求. 而且, 这种情况往往发生在新的服务项目的发布之后, 也就是说, 正是市场行销的高峰期. 你能想象当这样的问题发生时我们的高级市场经理的心情吗?
  
  不幸的是,低效率的SQL语句是不可避免的. 系统通常都是在远远低于产品正常运行时的数据数量之上进行测试的, 所以系统的性能隐患不可能被完全发现.
  
  这也正是每一个DB开发人员都应该明白基本SQL调试原理的初衷. 这篇文章将对此类问题做一个理论性的阐述. 在读完文章之后,你应该能回答: 对特定数据量的数据I, 这个执行计划是合理的吗?
  
  我不得不提醒你, 这是一个关于理论的文章. 我知道没有人喜欢理论, 但是没有其他有效的方法来数说一二. 那么, 别担心, 让我们继续吧, 也许我们能从这里得到一些帮助和启示.
  
  在这片文章里, 将说明以下几个方面:
  什么是最优化
  数据表记录查询
  嵌套循环连接表
  
  二 假定
  
 SQL 调试指南 - 数据库执行计划(图)(图一)

  CUSTOMERS表包含了所有客户的总体信息. 假设这个公司有一百万个客户.CUSTOMERS表有一个主键CUSTOMER_ID, 这个主键有一个索引PK_CUSTOMERS. LAST_NAME列也有一个名为IX_CUSTOMERS_LAST_NAME的索引.表中有100000个不同的Last Name. 表中的记录平均有100 bytes. CUSTOMERS表中的REGION_ID字段连接REGIONS表, REGIONS表包含了所有的大约50个国家和地区, 有一个主键GEGION_ID和关于这个主键的索引PK_REGIONS.
  
  我将使用RECORDS(CUSTOMERS)和PAGES(CUSTOMERS)分别来表示CUSTOMERS表的记录数量和页数. 对于其它的表甚至索引也用类型的标志方法. Prob[CUSTOMERS.LAST_NAME = @LastName]表示一个客户名字为@LastName的可能性.
  
  三 什么是执行计划
  
  一个SQL语句表示你所想要得到的但是并没有告诉Server如何去做. 例如, 利用一个SQL语句, 你可能要Server取出所有住在Prague的客户. 当Server收到的这条SQL的时候, 第一件事情并不是解析它. 假如这条SQL没有语法错误, Server才会继续工作. Server会决定最好的计算方式. Server会选择, 是读整个客户表好呢, 还是利用索引会比较快些. Server会比较所有可能方法所耗费的资源. 最终SQL语句被物理性执行的方法被称做执行计划或者是查询计划.
  
  一个执行计划右若干基本操作组成. 例如, 遍历整张表, 利用索引, 执行一个嵌套循环或Hash连接等等. 我们将在这一系列的文章里具体讨论. 所有的基本操作都有一个输出: 结果集. 有些, 象嵌套循环, 有一个输入. 其他的, 象Hash连接, 有两个输入. 每个输入应与其它基本操作的的输出想连接. 这也就是为什么一个执行可以被看做是一个数的原因: 信息从树叶流向树根. 在文章的下面部分有很多诸如此类的例子.
  
  负责处理或计算最优的执行计划的DB Server组件叫优化器. 优化器是建立在其所在的DB资源的基础上而进行工作的.
  
  四 如何检查执行计划
  
  假如你在使用的是Microsoft SQL Server 2000, 你可以使用Query Analyzer. 简单地输入一个SQL语句并按Ctrl+L键. 查询将被图形化的显示出来:
  
 SQL 调试指南 - 数据库执行计划(图)(图二)

  负责处理或计算最优的执行计划的DB Server组件叫优化器. 优化器是建立在其所在的DB资源的基础上而进行工作的.
上一篇:获得应用程序所执行的SQL语句 人气:562
下一篇:ABOUT : 字符数组 人气:464
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成