当前位置:首页 » 编程语言 » oracle11gsql优化
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle11gsql优化

发布时间: 2023-04-20 00:57:07

‘壹’ win7系统中安装plsql客户端,连接linux中oracle 11g,很慢,需要等3分钟前后才能进去,请问怎么优化

function postorder($root)
configure:3458: checking whether the C compiler works
configure:3480: gcc conftest.c >&5
ld: malformed 32-bit x.y.z version number: 11.4.0d1
collect2: ld returned 1 exit status
configure:3484: $? = 1
configure:3522: result: no
configure: failed program was:
| /* confdefs.h */

‘贰’ 如何进行oracle数据库性能优化

你最好买一本专门讲ORACLE性能优化的书,好好看看\x0d\x0a1、调整数据库服务器的性能\x0d\x0aOracle数据库服务器是整个系统的核心,它的性能高低直接影响整个系统的性能,为了调整Oracle数据库服务器的性能,主要从以下几个方面考虑: \x0d\x0a1.1、调整操作系统以适合Oracle数据库服务器运行\x0d\x0aOracle数据库服务器很大程度上依赖于运行服务器的操作系统,如果操作系统不能提供最好性能,那么无论如何调整,Oracle数据库服务器也无法发挥其应有的性能。 \x0d\x0a1.1.1、为Oracle数据库服务器规划系统资源 \x0d\x0a据已有计算机可用资源, 规划分配给Oracle服务器资源原则是:尽可能使Oracle服务器使用资源最大化,特别在Client/Server中尽量让服务器上所有资源都来运行Oracle服务。 \x0d\x0a1.1.2、调整计算机系统中的内存配置 \x0d\x0a多数操作系统都用虚存来模拟计算机上更大的内存,它实际上是硬盘上的一定的磁盘空间。当实际的内存空间不能满足应用软件的要求时,操作系统就将用这部分的磁盘空间对内存中的信息进行页面替换,这将引起大量的磁盘I/O操作,使整个服务器的性能下降。为了避免过多地使用虚存,应加大计算机的内存。 \x0d\x0a1.1.3、为Oracle数据库服务器设置操作系统进程优先级 \x0d\x0a不要在操作系统中调整Oracle进程的优先级,因为在Oracle数据库系统中,所有的后台和前台数据库服务器进程执行的是同等重要的工作,需要同等的优先级。所以在安装时,让所有的数据库服务器进程都使用缺省的优先级运行。 \x0d\x0a1.2、调整内存分配\x0d\x0aOracle数据库服务器保留3个基本的内存高速缓存,分别对应3种不同类型的数据:库高速缓存,字典高速缓存和缓冲区高速缓存。库高速缓存和字典高速缓存一起构成共享池,共享池再加上缓冲区高速缓存便构成了系统全程区(SGA)。SGA是对数据库数据进行快速访问的一个系统全程区,若SGA本身需要频繁地进行释放、分配,则不能达到快速访问数据的目的,因此应把SGA放在主存中,不要放在虚拟内存中。内存的调整主要是指调整组成SGA的内存结构的大小来提高系统性能,由于Oracle数据库服务器的内存结构需求与应用密切相关,所以内存结构的调整应在磁盘I/O调整之前进行。 \x0d\x0a1.2.1、库缓冲区的调整 \x0d\x0a库缓冲区中包含私用和共享SQL和PL/SQL区,通过比较库缓冲区的命中率决定它的大小。要调整库缓冲区,必须首先了解该库缓冲区的活动情况,库缓冲区的活动统计信息保留在动态性能表v$librarycache数据字典中,可通过查询该表来了解其活动情况,以决定如何调整。 \x0d\x0a \x0d\x0aSelect sum(pins),sum(reloads) from v$librarycache; \x0d\x0a \x0d\x0aPins列给出SQL语句,PL/SQL块及被访问对象定义的总次数;Reloads列给出SQL 和PL/SQL块的隐式分析或对象定义重装载时在库程序缓冲区中发生的错误。如果sum(pins)/sum(reloads) ≈0,则库缓冲区的命中率合适;若sum(pins)/sum(reloads)>1, 则需调整初始化参数 shared_pool_size来重新调整分配给共享池的内存量。 \x0d\x0a1.2.2、数据字典缓冲区的调整 \x0d\x0a数据字典缓冲区包含了有关数据库的结构、用户、实体信息。数据字典的命中率,对系统性能影响极大。数据字典缓冲区的使用情况记录在动态性能表v$librarycache中,可通过查询该表来了解其活动情况,以决定如何调整。 \x0d\x0a \x0d\x0aSelect sum(gets),sum(getmisses) from v$rowcache; \x0d\x0a \x0d\x0aGets列是对相应项请求次数的统计;Getmisses 列是引起缓冲区出错的数据的请求次数。对于频繁访问的数据字典缓冲区,sum(getmisses)/sum(gets)<10%~15%。若大于此百分数,则应考虑增加数据字典缓冲区的容量,即需调整初始化参数shared_pool_size来重新调整分配给共享池的内存量。 \x0d\x0a1.2.3、缓冲区高速缓存的调整 \x0d\x0a用户进程所存取的所有数据都是经过缓冲区高速缓存来存取,所以该部分的命中率,对性能至关重要。缓冲区高速缓存的使用情况记录在动态性能表v$sysstat中,可通过查询该表来了解其活动情况,以决定如何调整。 \x0d\x0a \x0d\x0aSelect name,value from v$sysstat where name in ('dbblock gets','consistent gets','physical reads'); \x0d\x0a \x0d\x0adbblock gets和consistent gets的值是请求数据缓冲区中读的总次数。physical reads的值是请求数据时引起从盘中读文件的次数。从缓冲区高速缓存中读的可能性的高低称为缓冲区的命中率,计算公式: \x0d\x0a \x0d\x0aHit Ratio=1-(physical reds/(dbblock gets+consistent gets)) \x0d\x0a \x0d\x0a如果Hit Ratio<60%~70%,则应增大db_block_buffers的参数值。db_block_buffers可以调整分配给缓冲区高速缓存的内存量,即db_block_buffers可设置分配缓冲区高速缓存的数据块的个数。缓冲区高速缓存的总字节数=db_block_buffers的值*db_block_size的值。db_block_size 的值表示数据块大小的字节数,可查询 v$parameter 表: \x0d\x0a \x0d\x0aselect name,value from v$parameter where name='db_block_size'; \x0d\x0a \x0d\x0a在修改了上述数据库的初始化参数以后,必须先关闭数据库,在重新启动数据库后才能使新的设置起作用。

‘叁’ oracle入门经典书籍

oracle书籍一、《Oracle Database 11g性能优化攻略》
三位经验丰富的顶级oracle dba 再次联手,为读者呈现这本oracle 数据库性能优化攻略。本书由表及里地深入分析了造成oracle 数据库性能缓慢的各种原因,然后给出标本兼治的性能调优方案。

oracle书籍二、《收获,不止Oracle》
在这《收获,不止oracle》里读者将会跟随作者一同对oracle数据库的相关知识进行梳理,最终共同提炼出必须最先掌握的那部分知识,无论你是数据库开发、管理、优化、设计人员,还是从事java、c的开发人员。

oracle书籍三、《Oracle 高性能SQL引擎剖析:SQL优化与调优机制详解》
oracle数据库的性能优化直接关系到系统的运行效率,而影响数据库性能的一个重要因素就是sql性能问题。本书是作者十年磨一剑的成果之一,深入分析与解剖oracle sql优化与调优技术。

oracle书籍四、《Oracle PL/SQL实战》
《oracle pl/sql实战》共15章,分别由15位业内顶级专家担纲撰写。一条sql语句的误用,可能导致作业的运行时间增加几百倍,riyaj shamsudeen巧妙地回答了何时使用pl/sql这一问题;michael rosenblum说明了如果只有到最终运行时,才知道所要运行的sql语句到底是什么。

‘肆’ oracle 9 10 11的区别

10比9多了4个关键服务,但是也要多占很多内存,如果没有什么特殊需求,9就够用了的;另外,相对于9,10增加了许多函数,以及新数据类型binary_float binary_double引入了新的pl/sql编译器极大的加强了pl/sql的执行性能在编译Pl/sql语句时会对死代码(从未执行的代码)或不可预料的庆肢子句时进行报警等等。10的新特性你可以去这个地址看下:http://www.dbanotes.net/Oracle/10G-What's-New.htm

11的新特性有朋友收集整理过了:
1. 数据库管理部分
· 数据库重演(Database Replay)
这一特性可以捕捉整个数据的负载,并且传递到一个从备份或者standby数据库中创建的测试数据库上,然后重演负责以测试系统调优后的效果。
· SQL重演(SQL Replay)
和前一特性类似。但是只是捕捉SQL负载部分,而不是全部负载。
· 计划管理(Plan Management)
这一特性允许你将某一特定语句的查询计划固定下来,无论统计数据变化还是数据库版本变化都不会改变她的查询计划。
· 自动诊断知识库(Automatic Diagnostic Repository ADR)
当Oracle探测到重要错误时,会自动创纪一个事件(incident),并且捕捉到和这一事件相关的信息,同时自动进行数据库健康检查并通知DBA。此外,这些信息还可以打包发送给Oracle支持团队。
· 事件打包服务(Incident Packaging Service)
如果你需要进一步测试或者保留相关信息,这一特性可以将与某一事件相关的信息打包。并且你还可以将打包信息发给oracle支持团队。
· 基于特性打补丁(Feature Based Patching)
在打补丁包时,这一特性可以使你很容易区分出补丁包中的那些特性是你正在使用而必须打的。企业管理器(EM)使你能订阅一个基于特性的补丁服务,因此企业管理器可以自动扫描那些你正在使用的特性有补丁可以打。
· 自动SQL优化(Auto SQL Tuning)
10g的自动优化建议器可以将优化建议写在SQL profile中。而在11g中,你可以让oracle自动将能3倍于原有性能的profile应用到SQL语句上。性能比较由维护窗口中一个新管理任务来完成。
· 访问建议器(Access Advisor)
11g的访问建议器可以给出分区建议,包括对新的间隔分区(interval partitioning)的建议。间隔分区相当于范围分区(range partitioning)的自动化版本,她可以在必要时自动创建一个相同大小的分区。范围分区和间隔分区可以同时存在于一张表中,并且范围分区可以转换为间隔分区。
· 自动内存优化(Auto Memory Tuning)
在9i中,引入了自动PGA优化;10g中,又引入了自动SGA优化。到了11g,所有内存可以通过只设定一个参数来实现全表自动优化。你只要告诉oracle有多少内存可用,她就可以自动指定多少内存分配给PGA、多少内存分配给SGA和多少内存分配给操作系统进程。当然也可以设定最大、最小阈值。誉碧世
· 资源管理器(Resource Manager)
11g的资源管理器不仅可以管理CPU,还可以管理IO。你可以设置特定文件的优先级、文件类型和ASM磁盘组。
· ADDM
ADDM在10g被引入。11g中,ADDM不仅可以给单个实例建议,还可以对整个RAC(即数据库级别)给出建议。另外,还可以将一些指示(directive)加入ADDM,使之忽略一些你不关心的信息。
· AWR 基线(AWR Baselines)
AWR基线得到了扩展。可以为一些其他使用到的特性自动创建基线。默认会创建周基线。
2. PLSQL部分
· 结果集缓存(Result Set Caching)
这一特性能大大提高很多程序的性能。在一些 MIS系统或者OLAP系统中,需要使用到很多"select count(*)"慧御这样的查询。在之前,我们如果要提高这样的查询的性能,可能需要使用物化视图或者查询重写的技术。在11g,我们就只需要加一个/*+ result_cache*/的提示就可以将结果集缓存住,这样就能大大提高查询性能。当然,在这种情况下,我们可能还要关心另外一个问题:完整性。因为在oracle中是通过一致性读来保证数据的完整性的。而显然,在这种新特性下,为提高性能,是从缓存中的结果集中读取数据,而不会从回滚段中读取数据的。关于这个问题,答案是完全能保证完整性。因为结果集是被独立缓存的,在查询期间,任何其他DML语句都不会影响结果集中的内容,因而可以保证数据的完整性。
· 对象依赖性改进
在11g之前,如果有函数或者视图依赖于某张表,一旦这张表发生结构变化,无论是否涉及到函数或视图所依赖的属性,都会使函数或视图变为invalid。在11g中,对这种情况进行了调整:如果表改变的属性与相关的函数或视图无关,则相关对象状态不会发生变化。
· 正则表达式的改进
在10g中,引入了正则表达式。这一特性大大方便了开发人员。11g,oracle再次对这一特性进行了改进。其中,增加了一个名为regexp_count的函数。另外,其他的正则表达式函数也得到了改进。
· 新SQL语法 =>
我们在调用某一函数时,可以通过=>来为特定的函数参数指定数据。而在11g中,这一语法也同样可以出现在sql语句中了。例如,你可以写这样的语句:
select f(x=>6) from al;
· 对TCP包(utl_tcp、utl_smtp…)支持FGAC(Fine Grained Access Control)安全控制
· 增加了只读表(read-only table)
在以前,我们是通过触发器或者约束来实现对表的只读控制。11g中不需要这么麻烦了,可以直接指定表为只读表。
· 触发器执行效率提高了

‘伍’ toad for oracle 11g里面查看sql语句执行效率的选项

你说的是explain plan吧?

Ctrl+E或者菜单:Edit-->explain plan current sql

‘陆’ oracle11gR2中查询同一SQL,为什么查询千万级数据比查询上亿数据慢呢

没有可比性
服务器的主机配置情况,资肆或滑源利裂腊用情况
表中记团颂录条数,执行计划等都影响查询效率

‘柒’ Oracle11g由于应用sql语句问题造成IO高,cpu高,业务中断,请教解决方法!

你这个情况属于死翘翘的,所谓优化大部分都需要代码的,而且代码级别的优化是最简单最粗浅的了,绕开代码级别的优化属于架构级别的优化了,那样代价就更高了,而且代码级别的优化都做不到,那架构级优化就更难了。如果sql都优化不了,你就算增加内存,增加cpu,增加服务器,即使你改到小型机上,而代码本身却不能够使用这些资源,你也是白搭的,你现在目前能做的要么放任自流,要么重新组建开发团队开发了。

‘捌’ Oracle 11g的数据库管理部分

(Automatic Diagnostic Repository ADR)
当Oracle探测到重要错误时,会自动创建一个事件(incident),并且捕捉到和这一事件相关的信息,同时自动进行数据库健康检查并通知DBA。此外,这些信息还可以打包发送给Oracle支持团队。· (Incident Packaging Service)
如果你需要进一步测试或者保留相关信息,这一特性可以将与某一事件相关的信息打包。并且你还可以将打包信息发给oracle支持团队。· (Feature Based Patching)
在打补丁包时,这一特性可以使你很容易区分出补丁包中的那些特性是你正在使用而必须打的。企业管理器(EM)使你能订阅一个基于特性的补丁服务,因此企业管理器可以自动扫描那些你正在使用的特性有补丁可以打。· (Auto SQL Tuning)10g的自动优化建议器可以将优化建议写在SQL profile中。而在11g中,你可以让oracle自动将能3倍于原有性能的profile应用到SQL语句上。性能比较由维护窗口中一个新管理任务来完成。
· (Access Advisor)
11g的访问建议器可以给出分区建议,包括对新的间隔分区(interval partitioning)的建议。间隔分区相当于范围分区(range partitioning)的自动化版本,她可以在必要时自动创建一个相同大小的分区。范围分区和间隔分区可以同时存在于一张表中,并且范围分区可以转换为间隔分区。 (Auto Memory Tuning)
在9i中,引入了自动PGA优化;10g中,又引入了自动SGA优化。到了11g,所有内存可以通过只设定一个参数来实现全表自动优化。你只要告诉oracle有多少内存可用,她就可以自动指定多少内存分配给PGA、多少内存分配给SGA和多少内存分配给操作系统进程。当然也可以设定最大、最小阈值。
· (Resource Manager)
11g的资源管理器不仅可以管理CPU,还可以管理IO。你可以设置特定文件的优先级、文件类型和ASM磁盘组。
· ADDM在10g被引入。11g中,ADDM不仅可以给单个实例建议,还可以对整个RAC(即数据库级别)给出建议。另外,还可以将一些指示(directive)加入ADDM,使之忽略一些你不关心的信息。
· (AWR Baselines)AWR基线得到了扩展。可以为一些其他使用到的特性自动创建基线。默认会创建周基线。

‘玖’ oracle11g数据库最新的优势有哪些

现在已经是Oracle12c了。

你要的是这个吗?

Oracle 11g比10g多了哪些新特性?
1. 11 g 扩展了 Oracle 独家具有的提供网格计算优势的功能,来提高用户服务水平、减少停机时间以及更加有效地利用 IT资源,
同时还增强全天候业务应用程序的性能、可伸缩性和安全性,利用真正应用测试(RAT)尽量降低更改的风险
2. 11 g降低了数据库升级以及其他硬件和操作系统更改的成本,显着简化了更改前后的系统测试以便您可以识别和解决问题。如:
利用 Database Replay在数据库级别轻松捕获实际的生产负载并在测试系统上重新播放,这样有效的全面测试系统更改(包括关键的并发特性)的影响。
3. SQL Performance Analyzer识别结构化查询语言 ) SQL(执行计划更改和性能回退。可以使用 SQL Tuning Advisor解决识别的问题,
方法是还原到原始的执行计划或进一步优化。利用管理自动化提高 DBA 效率
4. Oracle 数据库 11 g继续致力于显着简化和完全自动化 DBA 任务。
5.利用自学功能自动进行 SQL 优化系统全局区(SGA)和程序全局区( PGA)的内存缓存区的自动、统一调整新的 advisor用于分区、数据恢复、
流性能和空间管理针对自动数据库诊断监视器 (ADDM)的增强,能够提供 Oracle 真正应用集群 (Oracle RAC)环境中的更好的性能全局视图以及改进的性能比较分析功能。
6.利用故障诊断快速解决问题
7.故障诊断功能使客户在发生错误后捕获 Oracle
8.Support所需的数据变得极为简单。这可以加速问题的解决,减少客户重现问题的需要,尽量降低停机成本
9.通过 Oracle Data Guard快速恢复数据 Oracle Data Guard在本地和远程服务器之间协调数据库的维护和同步以便从灾难或站点故障快速恢复。
Oracle数据库11 g提供了大量显着的 Oracle Data Guard增强,包括可以在物理备用系统上运行实时查询用于报表和其他目的、
可以通过将物理备用系统暂时转换为逻辑备用系统执行联机的、滚动的数据库升级
10.支持测试环境的快照备用系统
11.物理和逻辑备用的性能都有提高。逻辑备用现在支持可扩展标记语言(XML)类型字符大型对象 (CLOB)数据类型和透明的数据加密。现在支持自动的、快速启动的故障切换以支持异步传输。
12.支持滚动升级
13.自动坏块检测和修复
14.快速镜像重新同步,该功能可以有效地重新同步存储网络连接性暂时丢失时自动存储管理镜像的存储阵列
15.自动存储管理的性能增强使得大型数据库可以更快地打开并减少 SGA 内存消耗。这些增强还允许 DBA增加存储分配单元大小以加快大型序列输入/输出 (I/O),显着增加正常运行时间
16.Oracle数据库11 g使您可以应用很多一次性数据库补丁(包括诊断补丁),而没有停机时间。新的数据恢复 advisor通过快速识别故障根本原因、为 DBA提供可用的恢复选项,
极大地减少了停机时间,在某些情况下,还通过“自我恢复”机制自动纠正问题。
17.自动编译数据库中的 PL/SQL 和 Java
18.更快的触发器,包括更加有效地调用每行触发器
19.更快的简单 SQL 操作
20.更快的 Oracle Data Guard 和 Oracle Streams 复制
21.与网络文件系统( NFS) 存储设备更快、更可靠的直接连接、更快的升级
22.大型文件更快的备份/还原更快的备份压缩
23.Oracle 数据库 11 g包括大量新的 ILM特性,例如
新的分区功能,包括 按父/子引用分区、按虚拟列分区
Oracle数据库11 g还具有带 Oracle闪回数据归档的 Total Recall,可以在选定的表中查询以前的数据,从而提供了一种简单实用的向数据中添加时间维度的方法以便于更改跟踪、 ILM、审计和合规。
24.Oracle 数据库 11g还有其他高可用性增强,包括:
Oracle闪回事务查询,提供带其他相关事务更改的流氓事务的按钮更改
具有更多可传输选项的增强的平台移植和数据移动,包括可传输分区、
模式和跨平台数据库
Oracle恢复管理器 (RMAN)支持 Windows Volume Shadow Copy
Service ( VSS )快照,从而实现与 Windows备份更紧密的集成
优化性能和可靠性
合规、法律取证以及整合数据仓库的趋势导致数据库的大小每两年就会增加两倍,这极大地影响了大型数据库的存储成本和性能、可靠性以及可管理性
Oracle 数据库 11 g使组织可以使用低成本的服务器和模块化的存储器轻松伸缩大型的事务和数据仓库系统并提供快速的全天候数据访问。
Oracle 数据库11 g提供新的创新特性以进一步提高要求极严格的环境的性能和可伸缩性。
利用 SecureFiles安全地存储您的所有数据
SecureFiles 是 Oracle用于在数据库中存储大型对象) LOB (例如图像、大型文本对象或包括 XML、医学成像以及地理空间栅格对象在内的高级数据类型)的下一代产品。
SecureFiles提供能够完全与文件系统相媲美的卓越性能。此外,它还提供高级功能,例如智能压缩、透明加密以及透明的重复删除。
通过联机事务处理压缩提高性能并尽量降低存储成本
Oracle 数据库 11 g支持联机事务处理 (OLAP)应用程序中常用的更新、插入和删除操作的数据压缩。以前的 Oracle数据库版本支持数据仓库应用
程序常用的批量数据加载操作的压缩。 Oracle 数据库 11 g OLTP表压缩通过更加高效地使用内存来缓存数据以及减少表扫描的 I/O提高了数据库性能
利用 OLTP表压缩,您可以利用最小的处理开销达到 2 到 3倍的压缩比。

‘拾’ 数据库oracle11G,如何通过plsql查询表空间大小,如何通过PLSQL把一个表空间的大小设置成自动扩展

sql语句

1.查询表空间大小

select tablespace_name , sum(bytes/1024/1024) sizeM from dba_data_files group by tablespace_name ;

2.设置数据文件为自动拓展

alter database datafile n autoextend on ;


不知道你说的两个东西有什么关联性。


下面是设置全部数据文件为自动拓展的plsql匿名块:

begin
forrecin(selectfile_id,autoextensiblefromdba_data_fileswhereautoextensible='NO')loop
executeimmediate'alterdatabasedatafile'||rec.file_id||'autoextendon';
endloop;
end;