- 浏览: 1048946 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (538)
- 奇文共赏 (36)
- spring (13)
- hibernate (10)
- AOP/Aspectj (9)
- spring security (7)
- lucence (5)
- compass (3)
- jbmp (2)
- jboss rule(drools) (0)
- birt (1)
- jasper (1)
- cxf (3)
- flex (98)
- webgis (6)
- 设计模式 (1)
- 代码重构 (2)
- log4j (1)
- tomcat (9)
- 神品音乐 (1)
- 工作计划 (2)
- appfuse (1)
- svn (4)
- 寻章摘句 (3)
- eclipse (10)
- arcgis api for flex (1)
- 算法 (5)
- opengis-cs (1)
- bug心得 (13)
- 图标 (1)
- software&key (14)
- java (17)
- 搞笑视频 (13)
- sqlserver (9)
- postgresql (1)
- postgis (0)
- geoserver (5)
- 日子 (50)
- 水晶报表 (1)
- 绝对电影 (3)
- Alternativa3D (1)
- 酷站大全 (10)
- c++ (5)
- oracle (17)
- oracle spatial (25)
- flashbuilder4 (3)
- TweenLite (1)
- DailyBuild (6)
- 华山论贱 (5)
- 系统性能 (5)
- 经典古文 (6)
- SOA/SCA/OSGI (6)
- jira (2)
- Hadoop生态圈(hadoop/hbase/pig/hive/zookeeper) (37)
- 风水 (1)
- linux操作基础 (17)
- 经济 (4)
- 茶 (3)
- JUnit (1)
- C# dotNet (1)
- netbeans (1)
- Java2D (1)
- QT4 (1)
- google Test/Mock/AutoTest (3)
- maven (1)
- 3d/OSG (1)
- Eclipse RCP (3)
- CUDA (1)
- Access control (0)
- http://linux.chinaunix.net/techdoc/beginner/2008/01/29/977725.shtml (1)
- redis (1)
最新评论
-
dove19900520:
朋友,你确定你的标题跟文章内容对应???
tomcat控制浏览器不缓存 -
wussrc:
我只想说牛逼,就我接触过的那点云计算的东西,仔细想想还真是这么 ...
别样解释云计算,太TM天才跨界了 -
hw_imxy:
endpoint="/Hello/messagebr ...
flex+java代码分两个工程 -
gaohejie:
rsrsdgrfdh坎坎坷坷
Flex 与 Spring 集成 -
李涤尘:
谢谢。不过说得有点太罗嗦了。
Oracle数据库数据的导入及导出(转)
http://space.itpub.net/?uid-219982-action-viewspace-itemid-620028
(29)用WHERE替代ORDER BY:
ORDER BY 子句只在两种严格的条件下使用索引。
ORDER BY中任何的列必须包含在相同的索引中并保持在索引中的排列顺序。
ORDER BY中任何的列必须定义为非空。
WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列。
例如: 表DEPT包含以下列:
DEPT_CODE PK NOT NULL
DEPT_DESC NOT NULL
DEPT_TYPE NULL
低效: (索引不被使用)
SELECT DEPT_CODE FROM DEPT ORDER BY DEPT_TYPE
高效: (使用索引)
SELECT DEPT_CODE FROM DEPT WHERE DEPT_TYPE > 0
(30)避免改变索引列的类型:
当比较不同数据类型的数据时, ORACLE自动对列进行简单的类型转换。 假设 EMPNO是个数值类型的索引列:SELECT … FROM EMP WHERE EMPNO = ‘123'。 实际上,经过Oracle类型转换, 语句转化为: SELECT … FROM EMP WHERE EMPNO = TO_NUMBER(‘123') 。
幸运的是,类型转换没有发生在索引列上,索引的用途没有被改变。现在,假设EMP_TYPE是个字符类型的索引列:SELECT … FROM EMP WHERE EMP_TYPE = 123 。
这个语句被Oracle转换为: SELECT … FROM EMP WHERETO_NUMBER(EMP_TYPE)=123。因为内部发生的类型转换, 这个索引将不会被用到! 为了避免Oracle对您的SQL进行隐式的类型转换,最好把类型转换用显式表现出来。注意当字符和数值比较时,Oracle会优先转换数值类型到字符类型。
(31)需要当心的WHERE子句:
某些SELECT 语句中的WHERE子句不使用索引。这里有一些例子:
(1)‘!=' 将不使用索引。记住, 索引只能告诉您什么存在于表中, 而不能告诉您什么不存在于表中。
(2)‘||'是字符连接函数。就象其他函数那样, 停用了索引。
(3)‘ '是数学函数。就象其他数学函数那样, 停用了索引。
(4)相同的索引列不能互相比较,这将会启用全表扫描。
(32)a. 假如检索数据量超过30%的表中记录数,使用索引将没有显着的效率提高。
b. 在特定情况下,使用索引也许会比全表扫描慢,但这是同一个数量级上的区别。而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!
(33)避免使用耗费资源的操作:
带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL语句会启动SQL引擎执行耗费资源的排序(SORT)功能。DISTINCT需要一次排序操作,而其他的至少需要执行两次排序。通常,带有 UNION, MINUS , INTERSECT的SQL语句都能够用其他方式重写。假如您的数据库的SORT_AREA_SIZE调配得好。使用UNION , MINUS, INTERSECT也是能够考虑的, 毕竟他们的可读性很强。
(34)优化GROUP BY:
提高GROUP BY 语句的效率,能够通过将无需的记录在GROUP BY 之前过滤掉。下面两个查询返回相同结果但第二个明显就快了许多。
低效: SELECT JOB , AVG(SAL) FROM EMP GROUP JOB HAVING JOB = ‘PRESIDENT' OR JOB = ‘MANAGER' 高效: SELECT JOB , AVG(SAL) FROM EMP WHERE JOB = ‘PRESIDENT' OR JOB = ‘MANAGER' GROUP JOB
(29)用WHERE替代ORDER BY:
ORDER BY 子句只在两种严格的条件下使用索引。
ORDER BY中任何的列必须包含在相同的索引中并保持在索引中的排列顺序。
ORDER BY中任何的列必须定义为非空。
WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列。
例如: 表DEPT包含以下列:
DEPT_CODE PK NOT NULL
DEPT_DESC NOT NULL
DEPT_TYPE NULL
低效: (索引不被使用)
SELECT DEPT_CODE FROM DEPT ORDER BY DEPT_TYPE
高效: (使用索引)
SELECT DEPT_CODE FROM DEPT WHERE DEPT_TYPE > 0
(30)避免改变索引列的类型:
当比较不同数据类型的数据时, ORACLE自动对列进行简单的类型转换。 假设 EMPNO是个数值类型的索引列:SELECT … FROM EMP WHERE EMPNO = ‘123'。 实际上,经过Oracle类型转换, 语句转化为: SELECT … FROM EMP WHERE EMPNO = TO_NUMBER(‘123') 。
幸运的是,类型转换没有发生在索引列上,索引的用途没有被改变。现在,假设EMP_TYPE是个字符类型的索引列:SELECT … FROM EMP WHERE EMP_TYPE = 123 。
这个语句被Oracle转换为: SELECT … FROM EMP WHERETO_NUMBER(EMP_TYPE)=123。因为内部发生的类型转换, 这个索引将不会被用到! 为了避免Oracle对您的SQL进行隐式的类型转换,最好把类型转换用显式表现出来。注意当字符和数值比较时,Oracle会优先转换数值类型到字符类型。
(31)需要当心的WHERE子句:
某些SELECT 语句中的WHERE子句不使用索引。这里有一些例子:
(1)‘!=' 将不使用索引。记住, 索引只能告诉您什么存在于表中, 而不能告诉您什么不存在于表中。
(2)‘||'是字符连接函数。就象其他函数那样, 停用了索引。
(3)‘ '是数学函数。就象其他数学函数那样, 停用了索引。
(4)相同的索引列不能互相比较,这将会启用全表扫描。
(32)a. 假如检索数据量超过30%的表中记录数,使用索引将没有显着的效率提高。
b. 在特定情况下,使用索引也许会比全表扫描慢,但这是同一个数量级上的区别。而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!
(33)避免使用耗费资源的操作:
带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL语句会启动SQL引擎执行耗费资源的排序(SORT)功能。DISTINCT需要一次排序操作,而其他的至少需要执行两次排序。通常,带有 UNION, MINUS , INTERSECT的SQL语句都能够用其他方式重写。假如您的数据库的SORT_AREA_SIZE调配得好。使用UNION , MINUS, INTERSECT也是能够考虑的, 毕竟他们的可读性很强。
(34)优化GROUP BY:
提高GROUP BY 语句的效率,能够通过将无需的记录在GROUP BY 之前过滤掉。下面两个查询返回相同结果但第二个明显就快了许多。
低效: SELECT JOB , AVG(SAL) FROM EMP GROUP JOB HAVING JOB = ‘PRESIDENT' OR JOB = ‘MANAGER' 高效: SELECT JOB , AVG(SAL) FROM EMP WHERE JOB = ‘PRESIDENT' OR JOB = ‘MANAGER' GROUP JOB
发表评论
-
oracle 连接数相关
2012-12-26 09:54 964http://www.ltesting.net/html/26 ... -
Oracle 数据库下 查询当前用户下所有表的记录总数
2010-03-30 14:03 1500select t.table_name,t.num_rows, ... -
详谈Oracle优化CPU使用率
2010-03-29 08:07 1895http://database.51cto.com/art/2 ... -
表之间插入数据
2010-03-03 16:26 1175insert into usersraw values() s ... -
Oracle SQL精妙SQL语句讲解
2009-11-22 20:08 1207http://space.itpub.net/219982/v ... -
ORACLE优化SQL语句,提高效率(2)
2009-11-22 20:05 1160http://space.itpub.net/?uid-219 ... -
ORACLE优化SQL语句,提高效率(1)
2009-11-22 20:04 1093http://space.itpub.net/?uid-219 ... -
"the account is locked"的解决方法
2009-08-31 21:11 1572用sys以sysdba的身份来进行登录,在sys状态是lo ... -
两个字段内容连接起来
2009-08-03 16:12 1204concat函数即可,如果是数字,他会变成字符串之后连接起来 ... -
分析总结:关于两个表关联进行更新
2009-05-19 18:03 1964http://www.oracle.com.cn/viewth ... -
如何在亿级记录表中创建索引
2009-03-30 14:46 1139http://ninedns.com/oracle/20074 ... -
Oracle数据导入导出imp/exp命令
2009-03-30 08:56 907http://www.cnblogs.com/jason_lb ... -
oracle大表分区的一点点心得
2009-03-25 08:01 2363http://www.knowsky.com/388420.h ... -
管理好ORACLE数据表的几个建议
2009-03-25 07:57 933http://oracle.chinaitlab.com/in ... -
oracle IMP 命令详解
2009-03-24 17:09 1617http://www.bokee.net/bloggermod ... -
Oracle数据库数据的导入及导出(转)
2009-03-24 16:05 2022Oracle数据库数据的导入 ...
相关推荐
ORACLE 优化 SQL 语句提高 Oracle 执行效率 Oracle 是一个功能强大的关系数据库管理系统,然而,如果不正确地使用 SQL 语句,可能会导致执行效率低下。为了提高 Oracle 的执行效率,需要遵循一些最佳实践。下面是...
本文将深入探讨Oracle中SQL语句执行效率的查找与解决方法,特别关注于如何识别和优化那些导致性能瓶颈的查询。 ### Oracle SQL执行效率:查找与解决 #### 一、资源消耗分析 在Oracle中,SQL语句执行效率低下通常...
在数据库管理中,SQL语句的执行效率是关键因素之一,尤其对于大数据量的应用来说,优化SQL性能至关重要。本文将详细探讨几个关于优化SQL语句执行效率的重要注意事项,旨在帮助数据库管理员和开发者提升系统性能。 ...
### ORACLE优化SQL语句,提高效率 在数据库管理和应用开发过程中,编写高效、性能优良的SQL语句是非常重要的一步。下面将详细解释如何优化Oracle中的SQL语句以提高其执行效率。 #### 1. 选择最有效率的表名顺序...
在使用这个工具时,开发者需要确保源代码中的SQL语句是标准的Oracle SQL格式,避免使用特定Oracle数据库的特性,以提高转换的成功率。同时,转换后还需要对生成的MySQL SQL进行测试,确保在目标数据库环境中能正常...
在Oracle环境中,理解SQL语句的行为是优化数据库性能的关键。SQL Monitor提供实时视图,帮助DBA(数据库管理员)和开发人员识别性能瓶颈,改善查询效率,并确保系统的稳定运行。 SQL Monitor通过收集和展示SQL语句...
本文档主要介绍了与SQL调整有关的内容,涉及多个方面:SQL语句执行的过程、ORACLE优化器、表之间的关联、如何得到SQL执行计划、如何分析执行计划等内容。通过从浅入深的方式了解SQL优化的过程,使大家逐步步入SQL...
本文将深入探讨如何利用压力测试工具来评估和优化Oracle数据库中的SQL语句性能。 标题"压测Oracle的SQL语句的性能情况"暗示了我们关注的是在高负载情况下,Oracle数据库处理SQL查询的能力。压力测试(Pressure ...
3. **建议与改写**:自动提供优化建议,包括修改SQL语句结构、创建或调整索引、优化连接方式等,有时甚至可以直接改写SQL语句以提高性能。 4. **历史记录与报告**:记录SQL语句的执行历史,生成性能报告,便于跟踪...
Oracle SQL 语句执行效率问题查找与解决方法 一、 Oracle SQL 语句执行效率问题查找方法 Oracle 数据库系统中, SQL 语句的执行效率问题是一个非常重要的问题。在实际应用中,我们经常会碰到一些性能不佳的 SQL ...
Oracle 高效 SQL 语句原则是指在编写 Oracle 数据库 SQL 语句时需要遵循的一些基本原则,以便提高 SQL 语句的执行效率,减少数据库服务器的负载,提高应用程序的性能。下面是 Oracle 高效 SQL 语句原则的详细介绍: ...
总之,Oracle SQL语句优化是一个涉及多个方面的过程,包括理解优化器的工作原理、选择合适的优化模式、收集准确的统计信息以及优化数据访问方法。通过对这些方面进行深入研究和实践,可以显著提升数据库的性能,从而...
oracle中SQL语句优化
这份"ORACLE数据库SQL语句编写优化总结"文档很可能是对如何提高SQL查询性能、减少资源消耗以及提升系统整体效率的详细阐述。以下是根据标题和描述推测的一些关键知识点: 1. **查询优化基础**: - **索引的使用**...
Oracle SQL语句是数据库管理员和开发人员在处理Oracle数据库时不可或缺的工具。它允许用户查询、更新、插入和删除数据,以及执行各种复杂的数据库操作。以下是对"Oracle的SQL语句的一些经验总结"中可能涉及的关键...
在Oracle数据库环境中,SQL语句的优化是提升查询效率、减少系统资源消耗的关键环节。通过对特定操作符的合理运用,可以显著改善数据检索的速度与准确性。本文将深入探讨几种常见的SQL操作符及其优化方法,包括IN、...
对ORACLE-SQL进行一些布局优化,更新它的格式
Oracle SQL语句性能优化是数据库管理中的关键环节,直接影响到系统的响应速度和资源利用效率。本文将详细探讨优化Oracle SQL语句的几个核心策略。 1. 选择合适的优化器 Oracle 提供了三种优化器:RULE(基于规则)...
Oracle数据库是全球最广泛使用的数据库管理系统之一,它遵循SQL标准,提供了一套强大的SQL语句,使得数据库操作变得高效和灵活。在Oracle数据库中,SQL语句是与数据库进行交互的主要方式。本文将总结一些Oracle基本...
Oracle SQL Profiler,自己设计算法写的一款非常好用的抓取Oracle数据库SQL语句的工具,可以再没有源码的情况下监控ORACLE数据库服务器的v$sqlarea视图抓取出从点击开始按钮到点击结束按钮期间执行过的SQL语句。...