当前位置: 首页 > news >正文

韩顺平 开源网站昆明百度seo

韩顺平 开源网站,昆明百度seo,软件的开发流程,网络销售挣钱吗9.1查询处理 一#xff1a;查询处理步骤 关系数据库管理系统查询处理可以分为4个阶段#xff1a; 查询分析查询检查查询优化查询执行 #xff08;1#xff09;查询分析 任务#xff1a;对查询语句进行扫描#xff0c;分析词法、语法是否符合SQL语法规则 如果没有语…9.1查询处理 一查询处理步骤 关系数据库管理系统查询处理可以分为4个阶段 查询分析查询检查查询优化查询执行 1查询分析 任务对查询语句进行扫描分析词法、语法是否符合SQL语法规则 如果没有语法错误转入下一步 如果有语法错误则在报告中显示错误 2查询检查 任务 对合法的查询语句进行语义检查即根据数据字典中有关的模式定义检查语句中的数据库对象如关系名、属性名是否存在和有效如果是对视图的操作则要用视图消解方法把对视图的操作转换成对基本表的操作还要对权限、完整性约束进行检查如果违反则拒绝查询检查通过后把SQL查询语句转化为内部表示也即等价的关系代数表达式在此过程中要把数据库对象的外部名称换为内部表示RDBMS一般用查询树又称为语法分析树来表示扩展的关系代数表达式 3查询优化 任务每个查询都会有许多可供选择的执行策略和操作算法查询优化就是选择一个高效执行的查询处理策略。按照优化的层次一般可以将查询优化分为 代数优化是指关系代数表达式的优化也即按照一定规则通过对关系代数表达式进行等价变换改变代数表达式中操作的次序和组合使查询更高效物理优化是指存取路径和底层操作算法的选择。选择依据可以是基于规则的(rule based)、基于代价的(cost based)、基于语义的(semantic based) 4查询执行 依据优化器得到的执行策略生成查询执行计划由 代码生成器(code generator) 生成执行这个查询计划的代码然后加以执行回送查询结果。 二实现查询操作的算法示例 1选择操作的实现 ①全表扫描 优点只需要用很少的内存最少为1块就可以运行且控制简单。适用于规模较小的表 缺点对于规模大的表进行顺序扫描当选择率低时会使效率很低 ②索引或散列扫描 思想如果选择条件中的属性上有索引例如B BB树索引或h a s h hashhash索引可以用索引扫描。通过索引先找到满足条件的元组指针再通过元组指针在查询的基本表中找到元组。 一般来说当选择率低于10%时建立索引才有意义 2连接操作的实现 ①嵌套循环方法nested loop 思想对外层循环(Student表)的每一个元组检索内层循环(SC表)中的每一个元组并检查这两个元组在连接属性(Sno) 上是否相等。如果满足连接条件则串接后作为结果输出直到外层循环表中的元组处理完为止 ②排序-合并方法sort-merge join 如果参与连接的表没有排好序首先对Student表和SC表按连接属性Sno排序 取Student表中第一个 Sno,依次扫描SC表中具有相同Sno的元组把它们连接起来 当扫描到Sno不相同的第 一个SC元组时返回Student 表扫描它的下一 个元组再扫描SC表中具有相同Sno的元组把它们连接起来 重复上述步骤直至Student扫描完毕 ③索引连接index join 在SC表上已经建立了属性Sno的索引 对Student中每一个元组由Sno值通过SC的索引查找相应的SC元组 把这些SC元组和Student元组连接起来 循环执行第二步和第三步直至Student中的元组处理完毕 ④哈希连接hash join 思想它把连接属性作为hash码用同一个hash函数把Student表和SC表中的元组散列到hash表中 划分阶段创建阶段即创建hash表。对包含较少元组的表( 如Student表)进行一遍处理把它的元组按hash函数(hash码是连接属性)分散到hash表的桶中试探阶段连接阶段对另一个表(SC表)进行一遍处理把SC表的元组也按同一个hash函数(hash 码是连接属性)进行散列找到适当的hash桶并把SC元组与桶中来自Student 表并与之相匹配的元组连接起来。 9.2查询优化 一查询优化概述 1查询优化的地位和重要性 关系系统的查询优化既是关系数据库管理系统实现的关键技术又是关系系统的优点所在。用户只要提出“干什么”而不必指出“怎么干”。 查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较高的效率而且在于系统可以比用户程序的“优化”做得更好。 2执行代价 总代价I/O代价CPU代价内存代价通信代价 计算查询代价时一般用查询处理读写的块数作为衡量单位 问问老师这个例子需要理解吗真的好繁琐 9.3代数优化与查询树 1启发式规则 【规则1】选择运算应尽可能先做这是为了减少中间结果的规模【规则2】投影和选择运算同时进行这是为了避免重复扫描【规则3】将投影运算与其前后的双目运算结合起来这是为了避免重复扫描【规则4】把某些选择运算和其前面的笛卡尔积结合起来成为一个连接运算这是为了减少中间结果的规模【规则5】提取公共子表达式公因子这是为了保存计算结果避免重复计算 2实现算法输出优化查询树 【步骤1】分解选择运算这是为了便于不同的选择运算沿树的不同分枝向树叶移动一直移动到与这个选择条件相关的关系处使选择尽可能先做。 【步骤2】通过交换选择运算将每个选择运算尽可能移动到叶端利用规则4~9尽可能把选择移动到树的叶端 【步骤3】通过交换投影运算将每个投影运算尽可能移动到叶端利用规则3、11、10、5尽可能把投影移动到树的叶端 【步骤4】合并选择和投影的串接利用规则3~5把选择和投影的串接合并成单个选择、单个投影或一个选择后面跟一个投影。这是为了使多个选择或投影能同时进行或在一次扫描中全部完成 【步骤5】对内结点分组每一双目运算 和它所有的直接祖先的一元运算结点σ 或Π分为一组如果其后代直到叶子全是单目运算则也将他们并入该组注意当双目运算是笛卡尔积×而且其后的选择不能与它结合为等值连接时则不能将选择与这个× ××并为一组 3很重要的例子 SELECT Student.Sname FROM Student,SC WHERE Student.SnoSC.Sno AND SC.Sno2; 先对Student和SC做笛卡尔积再对中间结果做选择条件为 Student.SnoSC.Sno再对中间结果做选择条件为SC.Sno2最后投影 查询树 优化1首先选择条件尽可能下移 SC.Sno2只和SC有关所以它会沿着分支恰当的分支下移到SC的上方Student.SnoSC.Sno同时涉及Student和SC所以只能待在那里 优化2把选择和其之前的笛卡尔积合并为等值连接或者干脆变为自然连接 问为什么倒数第二行上面没有投影 应该有的吧 另一个例子 SELECT Student.Sno,Sname FROM Student,SC,Course WHERE Cnamedatebase AND Ssex女; 将SQL语句转为关系代数表达式 查询树 优化1选择条件复杂先分解选择条件 优化2运算结果去树叶子 优化3涉及投影保留连接属性 优化4一些没必要的投影给他删除
http://www.hkea.cn/news/14575373/

相关文章:

  • 百度怎么制作网站教程详情页设计图片
  • 国内比较高端的设计网站微信群发布网站建设
  • 高校网站建设模板南京展厅设计装修
  • 网站建设要程序员吗开封网站开发公司
  • 基于php的网站开发英文文献网上做试卷的网站
  • wordpress 建站 搜索网站建设一般用什么编程
  • 网站建设的岗位叫什么定制企业网站多少钱
  • 南宁建筑网站网站建站模板
  • 潍坊有哪些网站网站开发是固定资产吗
  • 西安地区网站建设鞍山人才招聘网官网
  • 腾讯网网站网址手机网站开发指南
  • 文件外链生成网站wordpress 导航别名
  • 我本沉默传奇新开网站网页设计与制作软件有哪些
  • 网站建设淘宝模板php可以做网站吗
  • 网站建设导航滁州注册公司流程和费用
  • 最简单的单页网站怎么做asp网站水印支除
  • 申请网站空间怎么做灵台门户网
  • 网站建设续费的回访话术做试管婴儿的网站
  • 网站的设计风格与特点郑州高端定制建设网站
  • 临沂中文网站建设网站添加外链
  • 北海市住房和城乡建设局网站网站开发需要什么资料
  • 网站开发费怎么做账做网站用平板吗
  • 网站建设APP的软件苏州学校网站建设
  • 潍坊网络推广网站建设wordpress换不了密码错误
  • 服装网站公司网站北京网站优化托管
  • 静态网站生成一团网站建设
  • 网站运营成本预算中铁建设集团有限公司梅洪亮
  • 做流量网站吗1000个关键词
  • 阜阳网站建设哪家好市场营销专业课程
  • 英文购物网站模板下载怎么看网站是dede模板