SQL Server与Oracle数据库在查询优化上的差异(一)
2008-08-14 09:54:55 来源:WEB开发网其他两种哈希联接也各有各的用途,在这里就不重复描述了。下面,笔者谈谈在这两个数据库中,对于哈希联接所持的不同态度。
在微软的SQL Server数据库中,默认情况下,是采用哈希联接的。在优化过程中并不能够确定到底采用上面的那种联接方式。所以,微软的数据库系统默认情况下,实采用内存中的哈希联接,然后再根据生成输入的大小逐渐转换到GRACLE哈希联接以及递归哈希联接。
但是,若是在数据量不大的情况下,哈希联接不但不会提高数据库的查询效率,反而会有所下降。所以,Oracle数据库在默认情况下,是没有启用哈希联接的,而是在实际需要时,可添加一些设置使得数据库在有多大联接查询发生时才利用哈希联结。也就是说,Oracle数据库可以设置判断条件,数据库管理员可以指定,当满足一定的条件时才调用哈希联结,利用它来提高多表查询的效率。
三、 大表查询优化。
一般来说,在数据库设计中,数据库设计人员会利用索引等技术来提高数据库的查询效率。但是,索引的作用,也不是无限扩大的,它受到一定的限制。一般来说,他跟数据量是成反比的,当数据量越大时,他的作用就越小。确切的说,刚开始时随着数据量的增大其对数据库查询的优化作用会逐渐增大;但是,当数据数量累积到一定程度时,其效果就会逐渐减小。当数据量达到一定的程度,如一百万条时,索引的作用就非常微小了。
针对这种大容量记录的表,若需要查询,其查询效率不高。为此,数据库该采用什么方式来提高这个大表的查询效率呢?
这两大数据库不约而同的采用了哈希族的方式,来提高大表的查询。
如现在在设计一个图书馆管理系统,这个系统中,读者的信息有几百万、几千万条。当读者的信息存储在一个普通表中的时候,这些记录按照存储到数据库中的先后顺序,物理地保存到分配的块中。也就是说,数据库服务器的数据文件,或者数据表,就好像一个个抽屉,数据库是按先后顺序一条记录一条记录地从上到下存放数据。当整个表的容量逐渐增加时,该表相应的速度就会非常慢。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
更多精彩
赞助商链接