易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle SQL优化技巧

我觉得主要应该从5个方面进行调整:
1.去掉不必要的大型表的全表扫描
2.缓存小型表的全表扫描
3.检验优化索引的使用
4.检验优化的连接技术
5.尽可能减少执行计划的Cost
现在简单的举几个例子
Where子句中有“!=”将不使用索引
select account_name from test where amount != 0  (不使用)
select account_name from test where amount > 0  (使用)
Where条件中对字段增加处理函数将不使用该列的索引
select * from emp where to_char(hire_date,'yyyymmdd')='20080411' (不使用)
select * from emp where hire_date = to_char('20080411','yyyymmdd') (使用)
避免在索引列上使用IS NULL
select * from emp where dept_code is null  (不使用)
select * from emp where dept_code > 0  (使用)
IS NULL不會用到索引
而IS NOT NULL用到索引全掃描
通配符% 的使用
select * from emp where name like '%A'  (不使用索引)
select * from emp where name like 'A%'  (使用索引)
可以通过建立反向索引
让select * from emp where name like '%A'
也使用索引
在含有子查询的SQL语句中,要特别注意减少对表的查询.例子:
SELECT  EMP_NO from EMP WHERE (GROUP,NAME) = ( SELECT
COLUMN1,COLUMN2 from  TEST WHERE  TEST_ID = 604)
最高效的删除重复记录方法 ( 因为使用了ROWID)例子:
DELETE  from  EMP E  WHERE  E.ROWID > (SELECT MIN(X.ROWID)
from  EMP X  WHERE  X.EMP_NO = E.EMP_NO);
sql语句用大写的;因为oracle总是先解析sql语句,把小写的字母转换成大写的再执行
在java代码中用到preparedStatement的時候尽量少用连接符“+”连接字符串!


相关文档:

Oracle中截取字符串

关于Oracle里面的一些小函数
要求:A.数据库表中的一个字符串  可能含有"+" 例:ORC+001
       也可能不含“+”
      B.要求如果该字符串含有“+”,则取“+”之前的字符 例:ORC+001 取ORC
     ......

玩转Oracle(1)

Oracle安装篇
版本:win32_11gR1_database_1013
系统:win7
内存:3g(偶自己地-0-)
1、因为操作系统选择了win7,所以在安装之选需要修改一下配置文件,database\stage\prereq\db\refhost.xml
2、修改完配置文件后,点install安装即可,等dos界面加载完后跳出如下界面
 
 3、下一步
4、选择企业版,然后 ......

关于分组后字段拼接的问题 (Oracle)

-----关于分组后字段拼接的问题
来自:www.itpub.net 
最近在论坛上,经常会看到关于分组后字段拼接的问题,
大概是类似下列的情形:
SQL> select no,q from test
2 /
NO Q
---------- ------------------------------
001 n1
001 n2
001 n3
001 n4
001 n5
002 m1
003 t1
003 t2
003 t3
003 ......

SQL的优化

大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿!
SQL语句:
是对数据库(数据)进行操作的惟一途径;
消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号