WEB开发网
开发学院数据库MSSQL Server SQL Server与Oracle数据库在查询优化上的差异(一... 阅读

SQL Server与Oracle数据库在查询优化上的差异(一)

 2008-08-14 09:54:55 来源:WEB开发网   
核心提示: 修改方法:第一步:先利用查询语句判断,是否有临时段需求的产生,SQL Server与Oracle数据库在查询优化上的差异(一)(2),select * from v$sysstat where name='dtmfg(disk)' or name='dtmfg(me

修改方法:

第一步:先利用查询语句判断,是否有临时段需求的产生。

select * from v$sysstat where name='dtmfg(disk)' or name='dtmfg(memory)';

如我们可以定时利用以上语句,来查询是否有临时段需求的产生。这条语句中,dtmfg是具体的数据库实例名,我们只需要修改这个名字,就可以查询到我们需要的内容。若在查询结果中,发现有临时段需求产生的话,则就需要考虑修改相关的配置文件,以优化排序查询性能。

第二步:修改参数配置文件。

我们需要修改inint.ora文件,修改里面的SORT-AREA-SIZE的值。不过,修改这个配置文件之后,还必须重新启动数据库才会生效。一般情况下,数据库管理员需要定时查询这个临时段需求,然后根据情况,不断的进行调整,做好数据排序查询优化功能。

而在微软的SQL Server数据库中,笔者没有发现类似的功能。

二、 利用哈希联接,提高多表查询性能。

多表之间的关联查询,无论是哪种关联类型,到数据量比较大时,对于数据库服务器的查询性能都是一个非常大的考验。所以,在实际数据库设计中,当数据量比较大的时候,需要采用哈希联接,来提高数据库多表查询的效率。一般来说,哈希联接比其他几种表之间的连接方式,对于服务器来说开销要小得多,从而可以提高服务器的查询效率。

哈希联接一共有三种联接方式,分别为内存中的哈希联结、Gracle哈希联接与递归哈希联接。

所谓内存的哈希联接,是指先扫描或计算整个生成输入,然后在内存中生成哈希表。根据哈希键计算出哈希值,然后将每行插入哈希存储。如果整个生成输入比可用内存少,则可以将所有行都插入到哈希表中。生成阶段之后就是探测阶段。一次一行的3对整个探测输入进行扫描或者计算,并为每个探测行计算哈希健的值,并按一定的规则生成匹配项。

上一页  1 2 3 4  下一页

Tags:SQL Server Oracle

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接