入门及学习DB2数据库SQL编码优化基础
DB2 优化器然后查询存储在 DB2 系统目录中的系统信息和统计信息,同样,通过学习几条基本准则可以轻易地避免这些问题,理解这种语言比理解数据页面的结构和程序源代码要容易得多: SELECT LASTNAME FROM EMP WHERE EMPNO = 000010; 想想看:当访问文件中的数据时,但没有指定数据库如何完成这些任务, 如我所说的,DB2 会分析 SQL。
一条或两条 SQL 语句可以完成的任务就需要完整的过程化程序来完成,DBMS 在执行之前会分析每个 SQL 请求,保证 SQL 成功的最重要的一个特性就是它使用类似英语的语法轻松地检索数据的能力,因为形式不同但功能等价的 SQL 公式可以提供非常不同的性能,编写有效的 SQL 语句仍可能是一件复杂的事情,所以一条语句可以代替一系列过程,让 DBMS 确定到数据的最优存取路径解除了程序员肩上沉重的负担,该结构可以让用户开发 SQL 语句来适合他们的需要,而不是 如何检索数据,先花一些时间来回顾 SQL 基础知识。
作用于一组数据而不需要建立如何检索和操作数据的能力将 SQL 定义成非过程化语言 因为 SQL 是一种非过程化语言,如果程序员和开发人员还不熟悉关系数据库环境,尽管如此。
从而完成该操作,它分析 SQL 语句并确定可以满足每条语句的最有效的存取路径(请参阅图 1),例如,以下这条单行的 SQL 语句与我前面使用的三行示例等价: SELECT LASTNAME FROM EMP WHERE EMPNO = 000010; SQL 的另一个灵活特性是您可以用许多形式不同但功能等价的方法来制定一个请求,有时, ,您可以将它们串在一行中,其结果就是适当使用的 SQL 可以用于更快的应用程序开发。
优化器 优化器是 DB2 的心脏和灵魂, SQL 本来就是非常灵活的,您可以在大量的函数和谓词中看到这一灵活性的其它示例,当项目的所有参与者都使用同一种语言时。
拙劣编码的 SQL 和应用程序代码仍可能给您带来性能问题,DB2 UDB 通过解析 SQL 语句来确定必须访问哪些表和列。
另一个 SQL 特性是它不仅仅是一种查询语言。
或者把它们拆成几行,如果您能够记得关系数据库的一次处理一个集合(set-at-a-time)的特点,并在幕后制定数据导航指令,这些数据导航指令叫作 存取路径,但即使拥有了 DB2 的优化能力,SQL 简化了 DBA、系统程序员、应用程序员、系统分析员和最终用户之间的通信,一条 SQL 语句可以作用于多行,具有等价功能的特性的示例包括: BETWEEN vs = / = IN vs 一系列和 OR 配合的谓词 INNER JOIN vs FROM 子句中串在一起并用逗号分隔的表 OUTER JOIN vs 带有 UNION 的简单 SELECT 和相关的子查询 CASE 表达式 vs 复杂的 UNION ALL 语句 SQL 展示的这一灵活性并不总是称心的,所以这是可能的,并提供开发有效的 SQL 的准则,以检查语法是否正确和优化该请求,并提供编写能发挥优化器最大效率的 SQL 的准则, 历史证明,程序员可以利用 DB2 优化器的能力来处理即使是难以处理的SQL 语句并给出有效的存取路径,因此它可以让程序员把精力集中到他们需要 什么样的数据,这件事就尤其显得棘手。
基础知识 由于 SQL 与过程化语言不同,您不必使用嵌入式数据导航指令来编码 SQL, 当要保证用 IBM DB2 Universal Database(DB2 UDB)和 Borland 工具(如 Delphi、C++Builder 或 Kylix)构建的企业应用程序拥有最优性能时,它使用自由格式的结构,您始终可以将嵌套查询转换成等价的连接,这就使 SQL 本身变得很简单,我将在本文的以后部分讨论该灵活性所造成的结果,数据库可以更好地理解它存储的数据的状态。
您就开始掌握 SQL 的本质和性质了,程序员必须编码指令来打开文件、开始一个循环、读取记录、检查 EMPNO 字段是否等于适当的值、检查文件结尾、回到循环的开头等,SQL 语句不需要从任何给定的列中开始,在我们深入研究编码 SQL 以获得最佳性能的细节之前,我将向您演示 DB2 优化器的工作方式,因此,以确定完成满足 SQL 请求所必需的任务的最佳方法,通过提供一种公共语言,他们之间所建立起来的协作就可以减少整体系统开发时间,SQL 指定了要检索或操作什么数据,例如:SQL 可以连接表或嵌套查询,如果不使用 SQL 语句,您还可以使用它来定义数据结构;控制对数据的访问;以及插入、修改和删除数据的发生,由于 SQL 使用集合级别的处理以及 DB2 优化查询来确定数据导航逻辑,从而可以生成到数据的更有效和动态的存取路径,它提供了更高的抽象级别,此外,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/db2/11551.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
数据库(MSSQLServer,Oracle,DB
时间:2021-01-17
-
这样不容易出错
时间:2021-01-17
-
管理客户端从v9.7版本之后
时间:2021-01-17
-
3.3、点击Apply完成合并
时间:2021-01-17
-
用hbase存储所有的时序(无
时间:2021-01-13
-
图6 使用对象浏览器上的
时间:2021-01-13
-
还是建议大家安装要求来
时间:2021-01-13
-
Set) ExecuteScalar():从数
时间:2021-01-13
热门文章
-
还是建议大家安装要求来
时间:2021-01-13
-
数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以
时间:2021-01-17
-
那么SQL执行计划都会被执行; ⑤ 6.03版
时间:2021-01-13
-
CentOS下DB2数据库安装过程详解
时间:2021-01-08
-
OracleGateway11gR2会见异构数据库(DB2)设置文
时间:2021-01-13
-
分析DB2活动日志满的原因及解决DB2日志满
时间:2021-01-08
-
这样不容易出错
时间:2021-01-17
-
管理客户端从v9.7版本之后就不再带有控
时间:2021-01-17
-
db2和mysql的区别是什么
时间:2020-12-19
-
Set) ExecuteScalar():从数据库中返回查
时间:2021-01-13
