search
HomeDatabaseMysql Tutorial磁盘排序影响Oracle数据库性能的罪魁祸首

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 当建立同Oracle会话时,会在 服务器 内存 中划分出一个专门用来排序的区域,从而为会话提供排序空间。但是,这个排序空间毕竟有限,若记录数量超过这个排序空间的话,就需要进行磁盘排序。但是,我

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  当建立同Oracle会话时,会在服务器内存中划分出一个专门用来排序的区域,从而为会话提供排序空间。但是,这个排序空间毕竟有限,若记录数量超过这个排序空间的话,就需要进行磁盘排序。但是,我们都知道,磁盘排序的执行速度要比内存排序的执行速度慢1400倍。而且,磁盘排序会消耗临时表空间的资源,并且可能影响到正在进行的其他SQL排序,因为Oracle必须为临时表空间中的数据块分配缓冲池。而且,过多的磁盘排序会导致空闲缓冲等待,以及将执行其他任务的数据块从缓冲池中分页出去。对于数据库管理员来说,在内存中进行排序总是比磁盘排序更受欢迎。所以说,磁盘排序是影响Oracle数据库性能的罪魁祸首。

  在数据库优化的时候,我们应该想法设法降低数据库的磁盘排序。为此,笔者有如下建议。

  一、合理设置Sort_area_size参数

  虽然说Oracle10G以后的数据库会自动对内存进行管理。但是,在一些性能要求比较高或者排序频率比较高的数据库中,仍然有必要对一些影响内存分配的参数进行调整。其中,最重要的一个参数就是Sort_area_size。

  Oracle数据库会为所有的链接Oracle会话分配Sort_area_size这个参数。所以,对于拥有大量用户的数据库来说,如果增加这个参数的值,会让磁盘排序的几率明显降低,不过数据库也要为此付出这个代价,很容易导致内存过载。但是,如果这个参数的值设置的过低的话,又会导致过多的磁盘排序。

  所以,这个参数并不是越大越好。因为这个参数如果设置的过大的话,其带来的性能收益反而会降低。因为为了提高有限几个查询的速度,可能会浪费大量的内存。这无疑是我们数据库管理员不希望看到的。

  在实际工作中,我们往往需要在两者之间进行一个均衡。设置一个合理的参数,尽量让数据库减少磁盘排序的几率,同时也不能使得服务器内存过载。

  为此笔者有一个建议。数据库管理员应该每隔一段时间增加这个参数的值,并使用Statspack工具定时监控内存排序与磁盘排序的数据。在起初进行调整的时候最好每个小时查询一次。通过这些数据,我们就可以得到一个合理的参数值,在两这之间取得一个均衡。

  前期调整完成后,在后期仍然需要进行监控。因为后期随着企业应用的改变,这个参数仍然需要根据实际情况进行调整,以提高数据库的性能。

  二、尽量减少不必要的排序

  在某些情况下,尽管数据库管理员没有直接通过Order By等语句对数据库记录进行排序,可是Oracle数据库服务器仍然会对查询结果进行排序。因为这些语句需要起作用,必须要先对数据进行排序。所以,他们往往带有隐性的排序功能。

  我们在数据库维护或者前台应用程序设计的时候,要尽量的减少这种不必要的排序。如Distinct关键字,它的作用就是取消重复的记录。但是,要实现这个目的的话,则数据库必须要先对记录进行排序,然后才能够去除重复的记录内容。故在设计的时候,尽量要避免使用Distinct关键字。其实,笔者在工作中,经常会碰到这种情况,某些记录其实不存在重复记录,但是程序开发人员为了保障数据的准确性,就在SQL语句中加入了Distinct关键字,从而造成了不必要的排序。

  另外,在其他一些情况下,也会导致不必要的排序。如排序合并连接,也会导致不必要的排序。故无论何时,只要使用了排序合并连接,就会执行排序已连接关键值。故在数据库与应用程序设计的时候,要尽量避免排序合并连接。其实,在许多情况下,嵌套循环连接反而使更好的选择。因为这个嵌套循环连接,它更加有效而且不会导致不必要的排序以及不比要的全表扫描。

  其次,有时候缺失索引也会导致一些并不要的排序。

  故数据库管理员在平时的工作中,要尽量的减少这些不必要的排序,以让宝贵的内存资源交给更重要的任务来适用。

磁盘排序影响Oracle数据库性能的罪魁祸首

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
在 Windows 11 上配置 RAID 1 的步骤在 Windows 11 上配置 RAID 1 的步骤Sep 22, 2023 pm 03:05 PM

Windows11有严格的要求,在努力获取该存储之后,丢失硬盘驱动器和数据将是一个遗憾。好吧,我们带来了好消息,可以帮助您缓冲硬盘驱动器故障。使用内置的Windows工具,您可以将所有数据从一个驱动器复制到另一个驱动器。这样,如果一个驱动器发生故障,您可以在替换驱动器上镜像和重建原始数据。Windows11可以做RAID吗?借助Windows存储空间功能,您可以在Windows11上执行RAID。此功能允许您使用直接连接到计算机的硬盘驱动器创建多个虚拟磁盘,而不会降低性能。突袭的好处:降低因磁盘

如何在 Windows 11 上 RAID 外部硬盘驱动器如何在 Windows 11 上 RAID 外部硬盘驱动器Sep 16, 2023 pm 10:05 PM

RAID或独立磁盘冗余阵列是一种数据存储技术,其中多个外部驱动器组合成一个。当大型硬盘价格昂贵时,它被广泛使用,但许多人仍然更喜欢RAID外部驱动器的方法。RAID有几个级别,每个级别都用于特定目的。请记住,普通用户不必深入了解复杂性,RAID0或RAID1的简单设置应该可以正常工作。考虑突袭外部驱动器的原因:改进了电脑的性能易于配置,比现有替代方案便宜更快的数据读取和写入通过镜像实现有效的备份解决方案如何在Windows11上RAID外部驱动器?在RAID外部硬盘驱动器之前,需要注意以下几个先

如何在 Windows 11 上将动态磁盘转换为基本磁盘如何在 Windows 11 上将动态磁盘转换为基本磁盘Sep 23, 2023 pm 11:33 PM

如果要在Windows11中将动态磁盘转换为基本磁盘,则应首先创建备份,因为该过程将擦除其中的所有数据。为什么要在Windows11中将动态磁盘转换为基本磁盘?根据Microsoft,动态磁盘已从Windows中弃用,不再推荐使用。此外,Windows家庭版不支持动态磁盘,因此您将无法访问这些逻辑驱动器。如果要将更多磁盘合并到更大的卷中,建议使用基本磁盘或存储空间。在本文中,我们将向您展示如何在Windows11上将动态磁盘转换为基本磁盘如何在Windows11中将动态磁盘转换为基本磁盘?在开始

win11磁盘清理在哪查看win11磁盘清理在哪查看Jun 29, 2023 pm 09:25 PM

win11磁盘清理在哪查看?随着系统使用时间变久,c盘或者其他电脑磁盘里经常会多出来十几个G,或者是更多的无用垃圾文件。这时,使用win11自带的磁盘清理功能就可以帮助我们快速清理掉这些无用的文件。但是有不少用户们不清楚win11的磁盘清理功能在哪,怎么操作。今天小编就给大家带来了win11自带垃圾清理功能查看步骤,来给大家说明一下吧。win11自带垃圾清理功能查看步骤1、首先,按键盘上的【Win】键,或点击任务栏上的【开始菜单】,再选择已固定应用下的【设置】;2、当前路径为:系统>存储,

掌握Ubuntu系统中的磁盘使用情况的方法掌握Ubuntu系统中的磁盘使用情况的方法Jan 03, 2024 pm 11:13 PM

我们在系统要查看硬盘使用的情况,Ubuntu系统该怎么查看呢?下面我们就来看看,Ubuntu系统查看硬盘占用率的教程。1、在系统上,点击桌面左下角,如图示。2、在系统,点击公用程式,如图示。3、点击磁碟使用量,如图示。4、那么即可看到磁盘使用的情况,就是中间的磁盘就是你电脑硬盘,如图示。磁盘下面的小字就是使用情况。5、或点击公用程式上的磁碟,如图示。6、那么在容量这里,看得到硬盘使用情况,如图示。下面是文字版本查看磁盘的使用情况:df-h结果如下:FilesystemSizeUsedAvailU

任务管理器磁盘100%是什么意思任务管理器磁盘100%是什么意思Jan 03, 2024 pm 06:13 PM

很多小伙伴打开任务管理器cpu时候,发现磁盘显示百分之100,这是怎么一回事呢?因为当WindowsDefender在进行扫描时,如果再进行其他的工作,磁盘占用率就达到了100%,或者还有其他功能的占用,具体的介绍及解决方法下面一起来看看吧。任务管理器磁盘100%是什么意思:答:当前磁盘资源被大量的占用了。磁盘占用的最大问题其实是windows搜索导致的,这个功能需要不断地简历因此会导致占用超高。任务管理器磁盘100%怎么办?1、首先右击任务栏,打开“任务管理器”。2、然后看看那个占用率高,右击

How to Resolve a Disk Read ErrorHow to Resolve a Disk Read ErrorFeb 19, 2024 pm 02:39 PM

标题:如何解决"Adiskreaderroroccurred"错误字数:1470引言:在使用电脑的过程中,我们可能会遇到各种各样的错误。其中,硬盘读取错误是较为常见的问题之一。当您的计算机显示“adiskreaderroroccurred”时,这表示您的计算机无法从硬盘上读取数据。虽然这个问题可能会导致一些麻烦,但幸运的是,我们有一些方法可以

打开一个word文档是指把该文档从磁盘调入到哪里打开一个word文档是指把该文档从磁盘调入到哪里Jan 15, 2021 pm 04:54 PM

打开一个word文档是指把该文档从磁盘调入到内存并显示。word文档是一种计算机文件(文本文档、图片、程序等等),计算机中所有程序的运行(文件的打开)都在内存中进行。计算机打开文件的操作过程是:先将文件调入内存,然后CPU再从内存中读取和处理该文件,当处理完成后CPU将结果传送出来。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),