- 5
- 0
- 约1.07万字
- 约 7页
- 2020-09-07 发布于天津
- 举报
.
数据库优化方案
1. 高效地进行 SQL语句设计:
通常情况下,可以采用下面的方法优化 SQL对数据操作的表现:
(1)减少对数据库的查询次数,即减少对系统资源的请求,使用快照和显形图等分布式数
据库对象可以减少对数据库的查询次数。
(2 )尽量使用相同的或非常类似的 SQL语句进行查询,这样不仅充分利用 SQL共享池中的
已经分析的语法树,要查询的数据在 SGA 中命中的可能性也会大大增加。
(3 )避免不带任何条件的 SQL语句的执行。没有任何条件的 SQL语句在执行时,通常要进
行 FTS,数据库先定位一个数据块,然后按顺序依次查找其它数据,对于大型表这将是一个
漫长的过程。
(4 )如果对有些表中的数据有约束,最好在建表的 SQL语句用描述完整性来实现,而不是
用 SQL程序中实现。
一、操作符优化:
1、IN 操作符
用 IN 写出来的 SQL的优点是比较容易写及清晰易懂, 这比较适合现代软件开发的风格。
但是用 IN 的 SQL性能总是比较低的,从 Oracle 执行的步骤来分析用 IN 的 SQL与不用 IN 的
SQL有以下区别:
ORACLE试图将其转换成多个表的连接, 如果转换不成功则先执行 IN 里面的子查询, 再
查询外层的表记录, 如果转换成功则直接采用多个表的连接方式查询。 由此可见用 IN 的 SQL
至少多了一个转换的过程。 一般的 SQL都可以转换成功, 但对于含有分组统计等方面的 SQL
就不能转换了。在业务密集的 SQL当中尽量不采用 IN 操作符。
优化 sql 时,经常碰到使用 in 的语句,一定要用 exists 把它给换掉,因为 Oracle 在处理
In 时是按 Or 的方式做的,即使使用了索引也会很慢。
2 、 NOT IN 操作符
强列推荐不使用的,因为它不能应用表的索引。用 NOT EXISTS或(外连接 +判断为空)
方案代替
3 、IS NULL或 IS NOT NULL操作
判断字段是否为空一般是不会应用索引的,因为 B 树索引是不索引空值的。
用其它相同功能的操作运算代替, a is not null 改为 a0 或 a ’’等。
不允许字段为空, 而用一个缺省值代替空值, 如业扩申请中状态字段不允许为空, 缺省
为申请。
避免在索引列上使用 IS NULL 和 IS NOT NULL 避免在索引中使用任何可以为空的列,
ORACLE将无法使用该索引.对于单列索引,如果列包含空值,索引中将不存在此记录 .对于
复合索引,如果每个列都为空,索引中同样不存在此记录 .如果至少有一个列不为空,则记
录存在于索引中.举例 :如果唯一性索引建立在表的 A 列和 B 列上 ,并且表中存在一条记录
的 A,B 值为 (123,null) , ORACLE 将不接受下一条具有相同 A,B 值( 123,null )的记录 (插入 ).然
而如果所有的索引列都为空, ORACLE 将认为整个键值为空而空不等于空 .因此你可以插入
1000 条具有相同键值的记录 ,当然它们都是空 !因为空值不存在于索引列中 ,所以 WHERE 子
.
您可能关注的文档
- 数学四年级上册复习资料.pdf
- 数学四年级上册期末总复习资料.pdf
- 数学四年级上册除法口算练习题.pdf
- 数学四年级下册简便运算题型汇总.pdf
- 数学四年级下册认识方程练习题.pdf
- 数学好朋友数(20200902193735).pdf
- 数学好朋友数.pdf
- 数学心算整理大全(20200902193231).pdf
- 数学心算整理大全(20200902193435).pdf
- 数学心算整理大全.pdf
- 散文题型03 理解分析词句(题型专练)(全国通用)(解析版)-2026年高考语文二轮复习讲练.docx
- 考前押题10 阅读理解之应用文——关注生活 学以致用(原卷版)(押题训练)2026年高考英语阅读理解突破策略及押题(全国通用).docx
- 清单04 综合性学习之语言表达(仿写邀请转述劝说) 活动策划(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 清单09 古诗文对比阅读之内容 情感 写法对比 语言 炼字 拓展探究(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 小说易错02 重点情节理解偏差(选择题)(易错专练)(全国通用)(原卷版)-2026年高考语文二轮复习讲练.docx
- 专题01 声现象(题型专练)(全国通用)(原卷版)2026年中考物理二轮复习讲练.docx
- 清单08 文言文(议论类 书信应用类)阅读之论点把握 文体特点(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 清单11 记叙文阅读之朗读设计 表达技巧 主旨情感 开放探究(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 语言清单05 语法填空中的词类(五)无提示词--连词(全国通用)(原卷版)2026年高考英语二轮复习讲练.docx
- 第04讲 想象探索与科学精神(《西游记》《海底两万里》《昆虫记》全国通用(讲义)(解析版)2026年中考语文一轮复习讲练.docx
原创力文档

文档评论(0)