sql优化扫盲
1.oracle扫描的顺序为从下到上,从右到左
所以我们要尽可能的把数据少的表放在后面,交叉表放在后面,最能过滤的条件放在后面
2.不要在索引上使用计算和not操作符
索引一旦参与计算或使用了not操作符,oracle将会忽略这个索引
3.尽量使用in和and,尽量避免使用or,or会产生大量的过滤 ,直接导致逻辑读大量增加
4.必要时使用autotrace(sqlplus中有效,PL/SQL中无效)
命令:set autotrace on;
规则:尽量减少逻辑读,应该避免物理读,提高缓冲区命中率 ,最好保持在95%以上。
recursive calls 递归调用
db block gets 数据块读取
consistent gets 一致性读取
physical reads 物理读取
redo size 产生的重做日志大小
逻辑读=consistent gets + db block gets
缓冲区命中率=(逻辑读-物理读)/逻辑读
一个进程可能对以后能够数据块中多个session。
sql优化最重常用的是办法是:审视sql语句
也可以执行这条sql来查找非常耗费空间的sql:
select sql_text ,sharable_mem from v$sql where sharable_mem > '100000' order by sharable_mem ;
相关文档:
UPDATe [Sale_Goods] SET [Catalog33_ID] = [Catalog].[ID]
from [Sale_Goods]
LEFT OUTER JOIN [chdy222] ON [Sale_Goods].[Code] = [chdy222].[ID]
LEFT OUTER JOIN [Catalog] ON [chdy222].[ufidaname] = [Catalog].[Name] and [Catalog].[Type]=33
WHERE [Catalog].[ID] IS NOT NULL ......
有这样一个字符串(中,国,中,人民,国,现代工业化进程,国)
处理过之后变成(中,国,人民,现代工业化进程)
以下是我的方法,有什么不对的地方还请各位指点
------------------删除重复的字符
declare
@v1 nvarchar
......
查看SQL版本以及补丁的方法 【http://hi.baidu.com/yangyanchen2008/blog/item/afe337173318130fc93d6df6.html】
查看SQL版本的方法:打开查询分析器,使用“SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') ”查询即可。SQL版本对照表:
......
SQL 语法参考手册(SQL)/数据类型
DB2 提供了关连式资料库的查询语言 SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的*作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成S ......
问题描述:有以下2张表,
表A
& ......