在转载了别人的一篇有关Oracle海量数据查询的文章之后,自己也同过实际经验总结了一下有关数据库性能和优化查询方面的东西
[b]1创建索引[/b]
频繁检索的数据,应该使用索引,Oracle中创建索引是(CREATE INDEX IND_TEST_ID ON TEST(ID) TABLESPACE USERS;其中INDEX IND_TEST_ID是索引名,TEST是表名,ID是表字段),有效的避免了整张表的扫描,提高了SQL查询.
[b]2去掉不必要的外键[/b]
尽量减少不必要的外键引用来维持数据库的完整性,这样做会损失数据库的性能,通过SQL也可以保证这一点,比如在insert的存入的是其他表的一个字段
[b]3使用关联查询代替嵌套[/b]
在执行嵌套查询的时候,首先是执行内部的字查询,然后将查询的结果返回给外部查询做为检索的数据,最后执行外部的查询,而执行关联查询,仅仅是执行了一次SQL查询
[b]4检索关键字的使用[/b]
使用exists关键字来检查结果集,在有like字句匹配的条件开始用"%",减少对整张票的扫描
另外对表的设计也是有技巧的,简单的说两种办法
[b]1垂直切割法[/b]
[b]2水平切割法[/b]
[b]1创建索引[/b]
频繁检索的数据,应该使用索引,Oracle中创建索引是(CREATE INDEX IND_TEST_ID ON TEST(ID) TABLESPACE USERS;其中INDEX IND_TEST_ID是索引名,TEST是表名,ID是表字段),有效的避免了整张表的扫描,提高了SQL查询.
[b]2去掉不必要的外键[/b]
尽量减少不必要的外键引用来维持数据库的完整性,这样做会损失数据库的性能,通过SQL也可以保证这一点,比如在insert的存入的是其他表的一个字段
[b]3使用关联查询代替嵌套[/b]
在执行嵌套查询的时候,首先是执行内部的字查询,然后将查询的结果返回给外部查询做为检索的数据,最后执行外部的查询,而执行关联查询,仅仅是执行了一次SQL查询
[b]4检索关键字的使用[/b]
使用exists关键字来检查结果集,在有like字句匹配的条件开始用"%",减少对整张票的扫描
另外对表的设计也是有技巧的,简单的说两种办法
[b]1垂直切割法[/b]
[b]2水平切割法[/b]