

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、个人理解,数据库性能最关键的因素在于10,因为操作内存是快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的10,就个人理解应该分为物理的和逻辑的优化,物理的是指oracle产品本身的一些优化,逻辑优化是指应用程序级别的优化物理优化:、优化内存内存是指OracleSGA(系统全局区),它由共享池、数据缓冲区、日志缓冲区组成;共享池又分为共享SQL区和数据字典缓存区。1数据库管理员通过执行下述语句,来查看共享sql区的使用率select(sum(pins-reloads)/sum(pins)"libCache"fromv$librarycache(DBA权限
2、)共享SQL区的使用率应该在90%以上,否则增加共享池大小v$rowcache视图结构NAMESPACEVARCHAR2(15)名称空间,例如:sql_area,indexGETSNUMBER请求的语句句柄数GETHITSNUMBER获得的句柄数GETHITRATIONUMBER前两者之比PINSNUMBER根据句柄查找对像并执行的次数PINHITSNUMBER对象在内存中的次数PINHITRATIONUMBER前两者之比RELOADSNUMBER由于是第一次执行,或者语句体被调出内存时需要重新reload次数oracle执行一条语句会首先去获得该语句句柄(gets),然后根据句柄查找对应的语
3、句,对像(pins)执行,如果该语句体因为某些因为没有在内存中则需要重载语句体(reloads)所以reloads最好不要超过1%,sum(pinhits)/sum(pins)要达到95%以上.sum(gethits)/sum(gets)命中率也应在95%以上.2. 数据库管理员可以执行下述语句,查看数据字典缓冲区的使用率select(sum(gets-getmisses-usage-fixed)/sum(gets)"RowCache"fromv$rowcache(DBA权限)数据字典缓冲区也应该在90%以上,否则增加共享池大小。本视图显示数据字典缓存(也叫rowcache
4、)的各项统计。每一条记录包含不同类型的数据字典缓存数据统计,注意数据字典缓存有层次差别,因此同样的缓存名称可能不止一次出现V$ROWCACHE视图结构PARAMETERVARCHAR2(15)缓存名COUNTNUMBER缓存项总数USAGENUMBER包含有效数据的缓存项数GETSNUMBER请求总数GETMISSESNUMBER请求失败数SCANSNUMBER扫描请求数SCANMISSESNUMBER扫描请求失败次数MODIFICATIONSNUMBER添加'修改'删除操作数DLM_REQUESTSNUMBERDLM请求数DLM_CONFLICTSNUMBERDLM冲突数DL
5、M_RELEASESNUMBERDLM释放数3. 管理员可以通过下述语句来查看数据缓冲区的使用情况selectname,valuefromv$sysstatwherenamein('dbblockgets','consistentgets','physicalreads');数据缓冲区使用命中率(physicalreads除以dbblockgets加consistentgets之和)一定要小于10%,否则需要增加数据缓冲区大小4. 管理员可以通过执行下述语句,查看日志缓冲区的使用情况selectname,valuefromv$sysstatwhe
6、renamein('redoentries','redologspacerequests')根据查询出的结果可以计算出日志缓冲区的申请失败率:requests除以entries申请失败率应该解决与0否则说明日志缓冲区开设太小,需要增加Oracle数据库的日志缓冲区二、物理I/0的优化1在磁盘上建立数据文件前首先运行磁盘碎片整理程序为了安全地整理磁盘碎片,需关闭打开数据文件的实例,并且停止服务。如果有足够的连续磁盘空间建立数据文件,那么就容易避免数据文件产生碎片。2. 不要使用磁盘压缩(Oracle文件不支持磁盘压缩)3. 不要使用磁盘加密加密像磁盘压缩一样加了一
7、个处理层,降低磁盘读写速度。如果担心自己的数据可能泄露,可以使用dbms_obfuscation包和labelsecurity选择性地加密数据的敏感部分4使用RAIDraid使用应注意:选择硬件raid超过软件raid;日志文件不要放在raid5卷上,因为raid5读性能高而写性能差;把日志文件和归档日志放在与控制文件和数据文件分离的磁盘控制系统上5. 分离页面交换文件到多个磁盘物理卷跨越至少两个磁盘建立两个页面文件。可以建立四个页面文件并在性能上受益,确保所有页面文件的大小之和至少是物理内存的两倍。三、cpu优化调整1. cpu使用情况般unix操作系统,可以使用sar-u命令查看cpu的使
8、用率;NT操作系统的服务器,可以使用NT的性能管理器来查看CPU的使用率出现CPU资源不足的情况很多:SQL语句的重解析、低效率的SQL语句、锁冲突都会引起cpu资源不足2. 查看sql语句的解析情况数据库管理员可以执行下述语句来查看SQL语句的解析情况:select*fromv$sysstatwherenamein('parsetimecpu','parsetimeelapsed','parsecount(hard)');这里parse_time_cpu是系统服务时间,parse_time_elapsed是响应时间。waite_time二par
9、se_time_elapsed-parse_time_cpu由此可以得到用户SQL语句平均解析等待时间:用户SQL语句平均解析等待时间二waitetime/parsecount数据库管理员还可以通过下述语句,查看低效率的SQL语句selectbuffer_gets,executlons,sql_textfromv$sqlarea;优化这些低效率的SQL语句也有助于提高CPU的利用率3. 查看Oracle数据库的冲突情况数据库管理员可以通过v$system_event数据字典中的"latchfree"统计项查看Oracle数据库的冲突情况,如果没有冲突的话,latchfree
10、查询出来没有结果。如果冲突太大的话,数据库管理员可以降低spin_count参数值,来消除4. cpu优化取消屏幕保护、把系统配置为应用服务器、监视系统中消耗中断的硬件、保持最小的安全审计记录、在专门服务器上运行Oracle、禁止非必须的服务四、网络配置优化网络配置是性能调整的一项很重要的内容,而且很容易隐藏性能瓶颈配置网卡使用最快和有效模式、删除不需要的网络协议、优化网络协议绑定顺序,为Oracle禁止或优化文件共享五、使用CBO优化器参见本目录CBD优化器六、合理配置oracle实例参数序号参数名称建议值说明1log_chcckpoint_intcrval12log_checkpoint_
11、timeout03parallcl_automatic_tuningTRUE4OPEN_CURSORS10245Dml_locks100006MTS_servers10根据用户数量可适当调整,一般为用户数量的10%7cursor_sharingSIMILAR七、索引优化(减少IO)如何某表的某个字段有主键约束和唯一性约束,则Oracle则会自动在相应的约束列上建议唯一索引。数据库索引主要进行提高访问速度。建设原则:1、索引应该经常建在Where子句经常用到的列上。如果某个大表经常使用某个字段进行查询,并且检索行数小于总表行数的5%。则应该考虑。2、对于两表连接的字段,应该建立索引。经常在某表的
12、一个字段进行OrderBy则也经过进行索引。3、不应该在小表上建设索引。优缺点:索引主要进行提高数据的查询速度。当进行DML时,会更新索引。因此索引越多,则DML越慢,其需要维护索引。因此在创建索引及DML需要权衡。创建索引:单一索引:CreateIndex<lndex-Name>On<Table_Name>(Column_Name);复合索弓I:CreateIndexi_deptno_jobonemp(deptno,job);>在emp表的deptno、job列建立索引。select*fromempwheredeptno=66andjob二'sals
13、39;走索弓I。select*fromempwheredeptno=66ORjob二'sals'->将进行全表扫描。不走索引select*fromempwheredeptno二66->走索弓I。select*fromempwherejob二'sals'->进行全表扫描、不走索引。如果在where子句中有OR操作符或单独引用Job歹U(索引列的后面列)则将不会走索引,将会进行全表扫描。4分析表与索引(analyze不会重建索引)analyzetabletablenamecomputestatistics等同于analyzetabletablena
14、mecomputestatisticsfortableforallindexesforallcolumnsfortable的统计信息存在于视图:user_tables、all_tables、dba_tablesforallindexes的统计信息存在于视图:user_indexes、all_indexes、dba_indexesforallcolumns的统计信息存在于视图:user_tab_columns、all_tab_columns、dba_tab_columns注:分析表与索引见AnalyzeAllTable存储过程5、一般来讲可以采用以下三种方式来手工分析索引。analyzeinde
15、xidx_tvalidatestructure:analyzeindexidx_tcomputestatistics:analyzeindexidx_testimatestatisticssample10percent1) analyzeindexidx_tvalidatestructure:这段分析语句是用来分析索引的block中是否有坏块儿,那么根据分析我们可以得到索引的结构数据,这些数据会保留到index_stats中,来判断这个索引是否需要rebuild.需要注意的是这样的分析是不会收集索引的统计信息的。2) validatestrueture有二种模式:online,offline,
16、般来讲默认的方式是offline。当以offline的模式analyze索引时,会对table加一个表级共享锁,对目前table的一些实时DMl操作会产生一定的影响。而以online模式分析时候,则不会加任何lock,但在index_stats中是看不到任何信息的。3) analyzeindexidx_tcomputestatistics:用来统计索引的统计信息(全分析),主要为CBO服务。4) analyzeindexidx_testimatestatisticssample10percent主要是用来指定比例进行抽样分析,也是为CBO服务.例中是抽样10%6. 常用来表连接的字段应用聚簇索
17、引先建聚簇:这个跟索引列类型一致createclusteremp_dept_cluster(deptnonumber(2)size1024建立聚簇索引,把索引建在聚簇上createindexemp_dept_cluster_idxonclusteremp_dept_cluster建表使用聚簇createtabledept(deptnonumber(2)primarykey,dnamevarchar2(14),locvarchar2(13)clusteremp_dept_cluster(deptno)八、建立表分区,将索引数据和表数据分开在不同的表空间上对于逻辑结构的优化,还应将表数据和索引数据
18、分开表空间存储,分别使用独立的表空间。因为如果将表数据和索引数据放在一起,表数据的I/O操作和索引的I/O操作将产生影响系统性能的I/O竞争,降低系统的响应效率。将表数据和索引数据存放在不同的表空间中,并在物理层面将这两个表空间的数据文件放在不同的物理磁盘上,就可以避免这种竞争了。逻辑优化:、可以对表进行逻辑分割如中国移动用户表,可以根据手机尾数分成10个表,这样对性能会有一定的作用二、Sql语句使用占位符语句,并且必须按照规定编写sql语句(如全部大写,全部小写等)oracle解析语句后会放置到共享池中如:select*fromEmpwherename二?这个语句只会在共享池中有一条,而如果
19、是字符串的话,那就根据不同名字存在不同的语句,所以占位符效率较好三、一些耗时的操作,可以通过存储过程等在用户较少的情况下执行数据库不仅仅是一个存储数据的地方,同样是一个编程的地方,一些耗时的操作,可以通过存储过程等在用户较少的情况下执行,从而错开系统使用的高峰时间,提高数据库性能四、尽量不要整表查询,尽量用wherehaving语句筛选如select*fromEmp,因为要转化为具体的列名是要查数据字典,比较耗时五、选择有效的表名对于多表连接查询,可能oracle的优化器并不会优化到这个程度,oracle中多表查询是根据FROM字句从右到左的数据进行的,那么最好右边的表(也就是基础表)选择数据较少的表,这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CHTS 10052-2021公路景观设计指南
- T/CHIA 24.2-2022儿童营养与健康调查基本数据集第2部分:2~5岁
- T/CHES 94-2023坡(耕)地水土流失防控技术导则壤中流排导技术
- T/CGCC 87-2024商业店装与展陈技术规范
- T/CFDIA 007-2024再生羽绒羽毛及制品评价要求
- T/CEMTA 3.2-2023工业电子雷管通用型起爆器第2部分:应用软件信息安全要求
- T/CECS 10156-2021建筑用玻璃纤维增强聚氨酯(GRPU)隔热铝合金型材
- T/CCSAS 040-2023化工企业安全审计工作指南
- T/CCOA 35-2020基于区块链的优质大米追溯信息采集规范
- T/CCAS 003-2018水泥企业社会责任评价指标体系
- 2025年四川省成都市青羊区中考二诊化学试题(原卷版+解析版)
- 预收货款协议合同
- 北京开放大学2025年《企业统计》形考作业3答案
- 2025年大数据分析师职业技能测试卷:数据仓库设计与数据建模实战试题汇编
- 2025届福州教育学院附属中学高考语文四模试卷含解析
- 2025年南京市七下期中英语试卷 (试卷版)
- 国有企业双重目标导向与双轨治理机制的研究进展及前景展望
- 2025年山东省烟草专卖局(公司)高校毕业生招聘(208名)笔试参考题库附带答案详解
- 浙江省宁波市2024学年第二学期高考与选考模拟考试化学试卷及答案(宁波二模)
- 国开电大软件工程形考作业3参考答案 (二)
- 棋牌转让免责协议书
评论
0/150
提交评论