SQL 性能优化大全

合集下载

5种提高SQL性能的方法

5种提高SQL性能的方法

五种提高 SQL 性能的方法有时,为了让应用程序运行得更快,所做的全部工作就是在这里或那里做一些很小调整。

啊,但关键在于确定如何进行调整!迟早您会遇到这种情况:应用程序中的 SQL 查询不能按照您想要的方式进行响应。

它要么不返回数据,要么耗费的时间长得出奇。

如果它降低了报告或您的企业应用程序的速度,用户必须等待的时间过长,他们就会很不满意。

就像您的父母不想听您解释为什么在深更半夜才回来一样,用户也不会听你解释为什么查询耗费这么长时间。

(“对不起,妈妈,我使用了太多的 LEFT JOIN。

”)用户希望应用程序响应迅速,他们的报告能够在瞬间之内返回分析数据。

就我自己而言,如果在 Web 上冲浪时某个页面要耗费十多秒才能加载(好吧,五秒更实际一些),我也会很不耐烦。

为了解决这些问题,重要的是找到问题的根源。

那么,从哪里开始呢?根本原因通常在于数据库设计和访问它的查询。

在本月的专栏中,我将讲述四项技术,这些技术可用于提高基于 SQL Server? 的应用程序的性能或改善其可伸缩性。

我将仔细说明 LEFT JOIN、CROSS JOIN 的使用以及 IDENTITY 值的检索。

请记住,根本没有神奇的解决方案。

调整您的数据库及其查询需要占用时间、进行分析,还需要大量的测试。

这些技术都已被证明行之有效,但对您的应用程序而言,可能其中一些技术比另一些技术更适用。

从 INSERT 返回 IDENTITY我决定从遇到许多问题的内容入手:如何在执行 SQL INSERT 后检索 IDENTITY 值。

通常,问题不在于如何编写检索值的查询,而在于在哪里以及何时进行检索。

在 SQL Server 中,下面的语句可用于检索由最新在活动数据库连接上运行的 SQL 语句所创建的 IDENTITY 值:SELECT @@IDENTITY这个 SQL 语句并不复杂,但需要记住的一点是:如果这个最新的 SQL 语句不是 INSERT,或者您针对非 INSERT SQL 的其他连接运行了此 SQL,则不会获得期望的值。

SQL Server数据库优化方案汇总

SQL Server数据库优化方案汇总

SQL Server数据库优化方案汇总50种方法优化SQL Server1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2、I/O吞吐量小,形成了瓶颈效应。

3、没有创建计算列导致查询不优化。

4、内存不足5、网络速度慢6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。

9、返回了不必要的行和列10、查询语句不好,没有优化可以通过如下方法来优化查询 :1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。

数据量(尺寸)越大,提高I/O越重要.2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)3、升级硬件4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。

注意填充因子要适当(最好是使用默认值0)。

索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段5、提高网速;6、扩大服务器的内存,Windows 2000和SQL server 2000能支持4-8G的内存。

配置虚拟内存:虚拟内存大小应基于计算机上并发运行的服务进行配置。

运行 Microsoft SQL Server? 2000 时,可考虑将虚拟内存大小设置为计算机中安装的物理内存的 1.5 倍。

如果另外安装了全文检索功能,并打算运行 Microsoft 搜索服务以便执行全文索引和查询,可考虑:将虚拟内存大小配置为至少是计算机中安装的物理内存的 3 倍。

将 SQL Server max server memory 服务器配置选项配置为物理内存的 1.5 倍(虚拟内存大小设置的一半)。

7、增加服务器 CPU个数;但是必须明白并行处理串行处理更需要资源例如内存。

编程技巧:优化SQL查询性能的7个方法

编程技巧:优化SQL查询性能的7个方法

编程技巧:优化SQL查询性能的7个方法1. 索引的正确使用在SQL查询中,索引是提升性能的关键。

正确创建和使用索引可以大大减少查询时间。

了解每个表中的数据字段,根据查询需求创建适当的索引是至关重要的。

避免在频繁进行查询和更新操作的字段上创建过多索引,因为索引也需要维护。

2. 避免全表扫描使用合适的WHERE子句和条件来缩小查询范围,避免不必要的全表扫描。

根据业务需求,添加合适的筛选条件可以有效地减少扫描行数,提高性能。

3. 慎用通配符通配符操作符(如'%')在SQL查询中可能会导致性能问题。

这是因为使用通配符会导致数据库执行全表扫描或者非常庞大的索引扫描操作。

尽量避免在模糊搜索中滥用通配符,可以考虑使用前缀搜索或者其他方式替代。

4. 避免使用子查询子查询可以给出所需结果,但是它们经常需要更多时间去执行。

如果可能,尝试将子查询转化为联接操作来提高性能。

5. 合理使用连接在多表查询中,关联条件和连接顺序对性能有重要影响。

使用INNER JOIN、LEFT JOIN等不同的连接方式时,请确保正确设置关联条件,并且有意识地按照操作逻辑和业务需求选择合适的连接方式。

6. 避免重复操作在一些复杂查询中,可能会出现重复操作的情况。

避免执行相同或非必要的子查询,可以考虑使用临时表或者存储过程来优化查询性能。

7. 对大数据量进行分页如果需要展示大量数据并进行分页显示,很可能会面临性能问题。

使用LIMIT 和OFFSET等关键字来限制返回结果的数量是提高性能的有效方法。

此外,还可以考虑使用缓存技术来减少数据库访问。

通过以上7个方法,你可以优化SQL查询性能并提升系统效率。

请根据业务需求综合运用这些技巧,并根据具体场景进行调整和优化。

记住不同场景下可能需要区别对待,持续监测和评估系统性能是保持高效查询的关键。

优化 SQL SELECT 语句性能的 6 个简单技巧

优化 SQL SELECT 语句性能的 6 个简单技巧

SELECT语句的性能调优有时是一个非常耗时的任务,在我看来它遵循帕累托原则。

20%的努力很可能会给你带来80%的性能提升,而为了获得另外20%的性能提升你可能需要花费80%的时间。

除非你在金星工作,那里的每一天都等于地球上的243天,否则交付期限很有可能使你没有足够的时间来调优SQL查询。

根据我多年编写和运行SQL语句的经验,我开始开发一个检查列表,当我试图提高查询性能时供我参考。

在进行查询计划和阅读我使用的数据库文档之前,我会参考其中的内容,数据库文档有时会很复杂。

我的检查列表绝对说不上全面或科学,它更像是一个保守计算,但我可以说,遵循这些简单的步骤大部分时间我确实能得到性能提升。

检查列表如下。

检查索引在SQL语句的WHERE和JOIN部分中用到的所有字段上,都应该加上索引。

进行这个3分钟SQL性能测试。

不管你的成绩如何,一定要阅读那些带有信息的结果。

限制工作数据集的大小检查那些SELECT语句中用到的表,看看你是否可以应用WHERE子句进行过滤。

一个典型的例子是,当表中只有几千行记录时,一个查询能够很好地执行。

但随着应用程序的成长,查询慢了下来。

解决方案或许非常简单,限制查询来查看当前月的数据即可。

当你的查询语句带有子查询时,注意在子查询的内部语句上使用过滤,而不是在外部语句上。

只选择你需要的字段额外的字段通常会增加返回数据的纹理,从而导致更多的数据被返回到SQL客户端。

另外:•使用带有报告和分析功能的应用程序时,有时报告性能低是因为报告工具必须对收到的、带有详细形式的数据做聚合操作。

•偶尔查询也可能运行地足够快,但你的问题可能是一个网络相关的问题,因为大量的详细数据通过网络发送到报告服务器。

•当使用一个面向列的DBMS时,只有你选择的列会从磁盘读取。

在你的查询中包含的列越少,IO开销就越小。

移除不必要的表移除不必要的表的原因,和移除查询语句中不需要的字段的原因一致。

复杂sql优化的方法及思路

复杂sql优化的方法及思路

复杂sql优化的方法及思路复杂SQL优化的方法及思路SQL是关系型数据库管理系统中最常用的语言,但是在处理复杂查询时,SQL语句往往会变得非常复杂和冗长,导致查询速度缓慢。

为了提高查询效率,我们需要进行SQL优化。

以下是一些复杂SQL优化的方法及思路。

1.索引优化索引是提高数据库查询效率的重要手段之一。

在设计表结构时,应该根据实际情况建立适当的索引。

在查询语句中使用索引可以大大减少数据扫描量,从而提高查询效率。

2.避免使用子查询子查询虽然方便了我们编写复杂的SQL语句,但是在执行过程中会增加额外的开销。

因此,在编写复杂SQL语句时应尽量避免使用子查询。

3.减少JOIN操作JOIN操作也是影响查询效率的一个重要因素。

在设计表结构时应尽量避免使用JOIN操作或者减少JOIN操作次数。

4.合理使用聚合函数聚合函数(如SUM、AVG等)可以对数据进行统计分析,在处理大量数据时非常有用。

但是,在使用聚合函数时要注意不要频繁调用,否则会降低查询效率。

5.使用EXPLAIN命令分析查询语句EXPLAIN命令可以分析查询语句的执行计划,从而找出影响查询效率的因素。

通过分析EXPLAIN结果,可以对SQL语句进行优化。

6.避免使用SELECT *SELECT *会查询所有列,包括不需要的列,增加了数据扫描量,降低了查询效率。

在编写SQL语句时应尽量避免使用SELECT *。

7.合理使用缓存缓存可以减少数据库访问次数,提高查询效率。

在设计系统架构时应考虑缓存的使用。

8.优化表结构表结构的设计也是影响SQL查询效率的一个重要因素。

在设计表结构时应尽量避免冗余数据和过多的列。

以上是一些复杂SQL优化的方法及思路。

通过合理运用这些方法和思路,可以大大提高SQL查询效率,为数据库管理系统提供更好的性能和稳定性。

52条SQL语句性能优化策略

52条SQL语句性能优化策略

52条SQL语句性能优化策略,建议收藏本文会提到52 条SQL 语句性能优化策略。

1、对查询进行优化,应尽量避免全表扫描,首先应考虑在WHERE 及ORDER BY 涉及的列上建立索引。

2、应尽量避免在WHERE 子句中对字段进行NULL 值判断,创建表时NULL 是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1 作为默认值。

3、应尽量避免在WHERE 子句中使用!= 或<> 操作符。

MySQL 只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE。

4、应尽量避免在WHERE 子句中使用OR 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,可以使用UNION 合并查询:select id from t where num=10 union all select id from t where num=20。

5、IN 和NOT IN 也要慎用,否则会导致全表扫描。

对于连续的数值,能用BETWEEN 就不要用IN:select id from t where num between 1 and 3。

6、下面的查询也将导致全表扫描:select id from t where name like‘%abc%’或者select id from t where name like‘%abc’若要提高效率,可以考虑全文检索。

而select id from t where name like‘abc%’才用到索引。

7、如果在WHERE 子句中使用参数,也会导致全表扫描。

8、应尽量避免在WHERE 子句中对字段进行表达式操作,应尽量避免在WHERE 子句中对字段进行函数操作。

9、很多时候用EXISTS 代替IN 是一个好的选择:select num from a where num in(selectnum from b)。

SQLServer的性能优化技巧

SQLServer的性能优化技巧

SQLServer的性能优化技巧随着IT技术的快速发展,数据库作为系统的核心组成部分,在各行各业的信息化建设中扮演着至关重要的角色。

作为一种重要的关系型数据库管理系统,SQLServer的性能往往直接影响着系统的运行效率和稳定性。

本文将介绍一些SQLServer的性能优化技巧,供读者参考。

一、使用恰当的数据库引擎SQLServer支持多种不同的数据库引擎,如MyISAM、InnoDB 等。

每一种引擎都有自己的特点和适用范围。

在进行数据建模时,要根据应用场景的需要选择最适合的引擎。

一般来说,InnoDB引擎支持事务、外键以及行级锁等特性,适合于对数据完整性要求比较高的系统;而MyISAM引擎则适合于读写比例较低的系统。

选择恰当的数据库引擎可以提高SQLServer的性能。

二、适当调整缓存参数SQLServer有多种缓存,包括查询缓存、表缓存、索引缓存等等。

合理的调整这些缓存参数,可以提高系统的性能。

其中,查询缓存可以减少重复查询的时间,提高响应速度;表缓存可以满足多次使用同样的查询所需的表缓存需求;索引缓存则可以提供快速的查询性能。

在具体的应用中,需要根据场景和需求选择不同的缓存参数,以达到最优的性能表现。

三、使用合适的索引策略索引是SQLServer中非常重要的性能优化策略。

适当的索引可以提高系统的查询速度和效率。

但是,在使用索引时,需要考虑到索引对插入、修改、删除等操作的影响。

如果索引过多,会导致这些操作的性能下降。

因此,必须在保证查询速度和效率的基础上,综合考虑索引对系统整体运行的影响。

四、合理使用分区技术对于大型的数据库系统,分区技术可以将数据划分为多个小段,降低系统的压力和负载,提高系统的处理速度。

在SQLServer中,可以根据表大小或者数据时间等因素进行分区。

通过使用分区技术,可以实现数据存储和查询的快速响应,同时有效地缓解系统的负载压力。

五、使用恰当的查询语句查询语句在SQLServer中起着至关重要的作用。

Oracle SQL性能优化的40条军规

Oracle SQL性能优化的40条军规

Oracle SQL性能优化的40条军规1. SQL语句执行步骤语法分析> 语义分析> 视图转换>表达式转换> 选择优化器>选择连接方式>选择连接顺序>选择数据的搜索路径>运行“执行计划”2. 选用适合的Oracle优化器RULE(基于规则)COST(基于成本)CHOOSE(选择性)3. 访问Table的方式全表扫描全表扫描就是顺序地访问表中每条记录,ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描。

通过ROWID访问表ROWID包含了表中记录的物理位置信息,ORACLE采用索引实现了数据和存放数据的物理位置(ROWID)之间的联系,通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高。

4. 共享SQL 语句Oracle提供对执行过的SQL语句进行高速缓冲的机制。

被解析过并且确定了执行路径的SQL语句存放在SGA的共享池中。

Oracle执行一个SQL语句之前每次先从SGA共享池中查找是否有缓冲的SQL语句,如果有则直接执行该SQL语句。

可以通过适当调整SGA共享池大小来达到提高Oracle执行性能的目的。

5. 选择最有效率的表名顺序ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表driving table)将被最先处理。

当ORACLE处理多个表时,会运用排序及合并的方式连接它们。

首先,扫描第一个表(FROM 子句中最后的那个表)并对记录进行派序,然后扫描第二个表(FROM子句中最后第二个表),最后将所有从第二个表中检索出的记录与第一个表中合适记录进行合并。

只在基于规则的优化器中有效。

举例:表TAB1 16,384 条记录表TAB2 1 条记录/*选择TAB2作为基础表(最好的方法)*/select count(*) from tab1,tab2 执行时间0.96秒/*选择TAB2作为基础表(不佳的方法)*/select count(*) from tab2,tab1 执行时间26.09秒如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

你当然也在SQL句级或是会话(session)级对其进行覆盖;
8
二、 SQL 优化建议原则
1、选用合适的ORACLE优化器
为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你 必须经常运行analyze 命令,以增加数据库中的对象统计信息
(object statistics)的准确性 。
15
二、 SQL 优化建议原则
3、选择最有效率的表名顺序(基于规则的优化器中有效)
例如: 表 TAB1 表 TAB2 16,384 条记录 1 条记录
选择TAB2作为基础表 (最好的方法)
select count(*) from tab1,tab2 执行时间0.96秒 选择TAB1作为基础表 (不佳的方法) select count(*) from tab2,tab1 执行时间26.09秒
4、WHERE子句中的连接顺序
ORACLE采用自下而上的顺序解析WHERE子句; 根据这个原理,表之间的连接必须写在其他WHERE 条件之前, 那些可以过滤掉最大数量记录的条件必 须写在WHERE子句的末尾。
18
二、 SQL 优化建议原则
4、WHERE子句中的连接顺序
SELECT * FROM EMP E
方式C:where colA between 1 AND 10000
20
二、 SQL 优化建议原则
5、SELECT子句中避免使用 ‚*‛
当你想在 SELECT 子句中列出所有的 COLUMN 时 , 使用动态SQL列引用 ‘*’ 是一个方便的方法.
实际上,ORACLE在解析的过程中, 会将’*’ 依次
转换成所有的列名, 这个工作是通过查询数据字典
完成的, 这意味着将耗费更多的时间
21
二、 SQL 优化建议原则
6、减少访问数据库的次数
当执行每条SQL语句时, ORACLE在内部执行了许 多工作: 解析SQL语句, 估算索引的利用率, 绑定变
量 , 读数据块等等.
由此可见, 减少访问数据库的次数 , 就能实际上减
23
二、 SQL 优化建议原则
6、减少访问数据库的次数
方式二:DECLARE
CURSOR C1 (E_NO NUMBER) IS SELECT EMP_NAME,SALARY,GRADE FROM EMP WHERE EMP_NO = E_NO;
BEGIN OPEN C1(342); FETCH C1 INTO …,..,.. ; ….. OPEN C1(291);
6
交流提纲
SQL 性能优化意义
SQL 优化建议
7
二、 SQL 优化建议原则
1、选用合适的ORACLE优化器
主要有3种:a. RULE (基于规则) CHOOSE (选择性)。 b. COST (基于成本) c.
设置缺省的优化器,可以通过对init.ora文件中
OPTIMIZER_MODE参数的各种声明,如 RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS .
SQL 性能优化交流资料
交流提纲
SQL 性能优化意义
SQL 优化建议
1
一、 SQL 性能优化意义
(一)ORACLE 性能优化主要方法
硬件升级(CPU、内存、硬盘); 版本及参数设置; 应用程序设计(框架、调用方式 --- 源代 码); SQL 语句优化;
2
一、 SQL 性能优化意义
读入多个数据块(database block)的方式优化全表扫描 ;
基于ROWID的访问方式情况,能提高访问表的效率, ROWID 包含了表中记录的物理位置信息.ORACLE采用索引(INDEX)
实现了数据和存放数据的物理位置(ROWID)之间的联系. 通
常索引提供了快速访问ROWID的方法,因此那些基于索引列 的查询就可以得到性能上的提高
二、 SQL 优化建议原则
2、合理使用索引
select,update,delete 语句中的子查询应当有规律地查找少于20%的表 行.如果一个语句查找的行数超过总行数的20%,它将不能通过使用 索引获得性能上的提高. 索引可能产生碎片,因为记录从表中删除时,相应也从表的索引中删 除.表释放的空间可以再用,而索引释放的空间却不能再用.频繁进行 删除操作的被索引的表,应当阶段性地重建索引,以避免在索引中造 成空间碎片,影响性能.在许可的条件下,也可以阶段性地truncate 表,truncate命令删除表中所有记录,也删除索引碎片. 在使用索引时一定要按索引对应字段的顺序进行引用。 用(+)比用NOT IN更有效率。 12
16
二、 SQL 优化建议原则
3、选择最有效率的表名顺序(基于规则的优化器中有效)
如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为
基础表, 交叉表是指那个被其他表所引用的表 。 例如:EMP表描述了LOCATION表和CATEGORY表的交集. SELECT * FROM LOCATION L , CATEGORY C,EMP E WHERE E.EMP_NO BETWEEN 1000 AND 2000 AND E.CAT_NO = C.CAT_NO AND E.LOCN = L.LOCN
1、硬件升级
CPU:在任何机器中CPU的数据处理能力往往是衡量计算机性能的 一个标志,并且ORACLE是一个提供并行能力的数据库系统,如果 运行队列数目超过了CPU处理的数目,性能就会下降

内存:衡量机器性能的另外一个指标就是内存的多少了,在 ORACLE中内存和我们在建数据库中的交换区进行数据的交换,读 数据时,磁盘I/O必须等待物理I/O操作完成,在出现ORACLE的内 存瓶颈时,我们第一个要考虑的是增加内存,由于I/O的响应时间 是影响ORACLE性能的主要参数; 网络条件:NET*SQL负责数据在网络上的来往,大量的SQL会令 网络速度变慢。比如10M的网卡和100的网卡就对NET*SQL有非常 明显的影响,还有交换机、集线器等等网络设备的性能对网络的影 响很明显,建议在任何网络中不要试图用3个集线器来将网段互联。 3
UNION ALL
SELECT * FROM orders WHERE order_num=1008 ;
14
二、 SQL 优化建议原则
3、选择最有效率的表名顺序(基于规则的优化器中有效)
ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因 此FROM子句中写在最后的表(基础表 driving table)将被最先处理; 在 FROM子句中包含多个表的情况下 ,你必须选择记录条数最少的 表作为基础表。 当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先, 扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后 扫描第二个表(FROM子句中最后第二个表),最后将所有从第二个表 中检索出的记录与第一个表中合适记录进行合并。
<=“P1234”
13
二、 SQL 优化建议原则
2、合理使用索引
SELECT * FROM orders WHERE (cust_num=126 AND order_num>1001) OR order_num=1008 ;
SELECT * FROM orders WHERE cust_num=126 AND order_num>1001
WHERE SAL > 5000 AND JOB = „MANAGER‟ AND 25 < (SELECT COUNT(*) FROM EMP
WHERE MGR=E.EMPNO);

SELECT * FROM EMP E WHERE 25 < (SELECT COUNT(*) FROM EMP
WHERE MGR=E.EMPNO)
在缺省情况下,ORACLE采用CHOOSE优化器, 为了避免那些 不必要的全表扫描(full table scan) , 你必须尽量避免使用
CHOOSE优化器,而直接采用基于规则或者基于成本的优化

9
二、 SQL 优化建议原则
1、选用合适合ORACLE优化器
访问Table的两种方式 :全表扫描和通过ROWID访问表 ; 全表扫描就是顺序地访问表中每条记录. ORACLE采用一次
一、 SQL 性能优化意义
4、SQL脚本优化的主要原因
SQL语句是对数据库(数据)进行操作的惟一途径; SQL语句消耗了70%~90%的数据库资源; SQL语句独立于程序设计逻辑,相对于对程序源 代码的优化,对SQL语句的优化在时间成本和风
险上的代价都很低;
SQL语句可以有不同的写法; SQL语句易学,难精通
一、 SQL 性能优化意义
2、版本及参数设置
4
一、 SQL 性能优化意义
3、数据库应用程序的优化
程序设计中的一个著名定律是20%的代码用去了80%的时间; 两种方式优化:源代码的优化和SQL语句的优化。源代码的优化在 时间成本和风险上代价很高;另一方面,源代码的优化对数据库系 统性能的提升收效有限。 DBMS处理查询计划的过程是这样的:在做完查询语句的词法、语 法检查之后,将语句提交给DBMS的查询优化器,优化器做完代数 优化和存取路径的优化之后,由预编译模块对语句进行处理并生成 查询规划,然后在合适的时间提交给系统处理执行,最后将执行结 果返回给用户。 5

----本脚本更有效率
SELECT * FROM EMP E, LOCATION L , CATEGORY C
WHERE E.EMP_NO BETWEEN 1000 AND 2000 AND E.CAT_NO = C.CAT_NO AND E.LOCN = L.LOCN
相关文档
最新文档