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

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

 2008-08-14 09:54:57 来源:WEB开发网   
核心提示: 若利用一句话来区分群集索引与非群集索引的区别,那就是群集索引“更新慢,SQL Server与Oracle数据库在查询优化上的差异(二)(4),查询难快”,在实际应用中,而这个工具是微软SQL Server数据库所缺乏的,或者跟甲骨文的数据库比起来,如果利用SQL S

若利用一句话来区分群集索引与非群集索引的区别,那就是群集索引“更新慢,查询难快”。

在实际应用中,如果利用SQL Server设计数据库系统的过程中,很少用到群集索引技术(根据笔者的了解)。而在Oracle数据库系统中,则应用的相对比较广泛一点。

不过,两个数据库在群集索引上都有一个共同点,就是要利用索引的话,必须在数据表建立的时候,就要设置群集索引。当数据库中有记录的话,是不能建立群集索引的。

说起区别,具体的实现语法有点差异,但是没有什么本质的区别。另外,对于甲骨文的数据库来说,可以把群集索引跟数据库文件存放在不同的磁盘中,从而提高输入输出效率。但是,微软的SQL Server数据库则不行。

4、 使用Oracle数据库自带的优化器优化SQL语句。

在Oracle数据库中,自带了一个SQL语句的优化工具,Oracle语句优化器。利用这个工具,可以提高SQL语句的执行效率。

一方面,Oracle数据库语句优化器是跟行锁管理工具一起使用的,两者往往需要配合使用,才能够起到意想不到的作用。另一方面,对于“扶不起的阿斗”,Oracle语句优化器也无能为力。也就是说,对于一些实在写得很糟糕的SQL语句,语句优化器对其也没有丝毫办法;只有对一些本来就比较合理的SQL语句,语句优化器与行锁管理工具,才能够在这个基础之上,再找到一些可以改善的地方,然后提出可行的改善意见。

具体来说,语句优化器,一方面确定SQL语句的最小代价执行计划,同时,确定数据的访问路径,如是否采用索引或者表扫描;采用合理的表连接方式以及顺序;判断索引不可使用时是否需要进行排序等等。综合以上因素,然后给我们提出一个改善的建议。

在实际工作中,语句优化器可以给我们找出一个SQL语句优化过程中的盲点。而这个工具是微软SQL Server数据库所缺乏的,或者跟甲骨文的数据库比起来,有差距的地方。

上一页  1 2 3 4 

Tags:SQL Server Oracle

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