![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Oracle 性能优化
文章平均质量分 78
李-磊
这个作者很懒,什么都没留下…
展开
-
使用SQLIO评估数据库磁盘性能
对于DBA来说,安装SQLServer之前先要了解磁盘的性能,这个很重要。微软提供了SQLIO可以帮助我们在系统安装之前评估磁盘的性能。 1. 下载SQLIO并安装 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=20163 2.修改SQLIO’s 配置文件原创 2012-09-06 10:25:05 · 223 阅读 · 0 评论 -
如何动态扩大oracle 9i SGA区中的内存空间?
Oracle 9i 具有动态SGA的功能,用操作系统命令查看系统内存时,发现系统中还有空闲内存. 但为什么有时使用oracle 9i 的 sql > alter system set db_cache_size=xxxxM 命令时数据库会报告错 -- 没有足够的内存. 这是由操作系统引起的吗? 不是,原因在于此时SGA区中没有多余空闲内存。尽管系统中有空闲内存,但未分配给SGA 区原创 2013-05-28 23:59:05 · 208 阅读 · 0 评论 -
Oracle版本升级
Oracle版本升级方式一:1:安装ORACLE软件2:升级软件3:创建监听4:创建DB方式二:这种方式一般是在初始安装系统中使用,大多述升级是在系统使用过程中做升级,下面是在WINDS环境下升级,但和UNIX/LINUX升级差不多升级测试环境:服务器:P4 3.0 1G RAM操作系统:Windows 2原创 2013-05-29 12:24:42 · 333 阅读 · 0 评论 -
dbms_stats与analyze
DBMS_STATS.GATHER_TABLE_STATS的语法如下: DBMS_STATS.GATHER_TABLE_STATS (ownname VARCHAR2, tabname VARCHAR2, partname VARCHAR2, estimate_percent NUMBER, block_sample BOOLEAN, method_opt VARCHAR2, degree原创 2013-07-03 01:27:01 · 203 阅读 · 0 评论 -
Oracle:表空间碎片检查
自由范围的碎片计算 ---- 由于自由空间碎片是由几部分组成,如范围数量、最大范围尺寸等,我们可用FSFI--Free Space Fragmentation Index(自由空间碎片索引)值来直观体现: FSFI=100*SQRT(max(extent)/sum(extents))*1/SQRT(SQRT(count(extents))) ---- 可以看出,FSF原创 2013-07-02 23:56:35 · 357 阅读 · 0 评论 -
日志记录模式(LOGGING 、FORCE LOGGING 、NOLOGGING)
--==================================================-- 日志记录模式(LOGGING 、FORCE LOGGING 、NOLOGGING)--================================================== 一、日志记录模式(LOGGING 、FORCE LOGGING 、NOLOGGING)转载 2013-07-03 09:14:43 · 204 阅读 · 0 评论 -
Oracle analyze table的使用总结
analyze table 一般可以指定分析: 表,所有字段,所有索引字段,所有索引。 若不指定则全部都分析。 SQL> analyze table my_table compute statistics; SQL> analyze table my_table compute statistics for table for all indexes for all co原创 2013-07-03 01:30:12 · 364 阅读 · 0 评论 -
关于位图索引的问题
我曾经迷茫于一个问题,为什么有的时候明明有索引,却无法提升效率。后来我在很多书上和论坛上看到,索引分为3种,默认的是B树索引,这个类型的索引在对付重复很多很多的列的时候并没有任何优势,比如性别列这个只有两个值(不排除会有第三值)的列。而这种重复度很高的列在我平时的生产系统中非常多,比如运营商的行政区列,西安市只有市区,户县,周至,蓝田等几个行政区,这种重复在百万级甚至千万级的表中属高重复的。那么这原创 2013-07-03 15:57:35 · 199 阅读 · 0 评论 -
索引优化时如何处理Date数据类型
在进行索引优化时,我们总会遇到一些难以处理的数据类型,而其中datetime可以说是这些中最难的。使用到datetime数据类型的查询过滤只是想对日期部分进行匹配。大多数人是通过一个转换函数来进行此操作。然而这将造成索引无效的问题,因为转换函数会使索引被扫描和不是被查找。 要进一步了解应用情况,你可以创建一个表,里面添加date字段,然后向表中添加一些记录。C原创 2013-07-05 10:51:28 · 282 阅读 · 0 评论 -
小表为什么会很慢?
前几天,一个用户找到我,说查一个小表的时候非常慢,我问有多慢,他说最快也得半个小时才能出结果,有时干脆不出结果,我说小表多大,他说就几十兆,有点疑惑,让他帮忙获取了相关信息,一看就明白了,原来所谓的小表是“假”的,下面是分析时参照的信息及分析的步骤。SQL语句:select * from TEST where rec_date>trunc(sysdate-1);SQL计划:原创 2013-08-20 15:43:14 · 247 阅读 · 0 评论 -
Oracle bigfile 大文件表空间
Database 是由一个或多个被称为表空间(tablespace)的逻辑存储单位构成。表空间内的逻辑存储单位为段(segment),段又可以继续划分为数据扩展(extent)。而数据扩展是由一组连续的数据块(datablock)构成。大文件表空间在Oracle中用户可以创建大文件表空间(bigfile tablespace)。这样Oracle数据库使用的表空间(tablespac原创 2013-08-21 15:35:15 · 495 阅读 · 0 评论 -
oracle 日常检查脚本
[plain] view plaincopy#!/bin/bash sqlplus -s / as sysdba spool /tmp/oraclecheck/dbcheck.log set echo off whenever sqlerror continue; prompt ##############################转载 2013-08-26 09:08:15 · 254 阅读 · 0 评论 -
Oracle11g新特性:只读表(read only table)
Oracle11g推出了一个新的特性,可以将table置于read only状态,处于该状态的table的不能执行DML操作和某些DDL操作。在Oracle11g之前的版本,只能将整个tablespace或者database置于read only状态。对于table的控制则只能通过权限来设定。SQL> create table t(i int); Table created.原创 2013-08-31 20:59:17 · 280 阅读 · 0 评论 -
buffer busy waits
以前一直以为buffer busy waits是以为一个对象读取过于频繁导致的,可是事实是这样吗?看看我的实验吧。SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle Database 10g Enterpri原创 2013-05-28 10:29:56 · 236 阅读 · 0 评论 -
Oracle 常见的33个等待事件
一. 等待事件的相关知识: 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件。1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件。2). 非空闲等待事件专门针对ORACLE的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是在调整数据库的时候需要关注与研究的。 在原创 2013-05-27 13:56:20 · 194 阅读 · 0 评论 -
oracle碎片小结
我们在使用windows的时候,都知道要定期整理磁盘碎片,因为磁盘碎片会影响性能,给管理上带来额外的负担。那oracle更是如此,当随着数据增加,oracle处理海量数据本身就已经很费力了啊,如果再有大量的碎片,那就是雪上加霜啊。所以碎片要引起dba的高度重视,尽早发现尽早处理。碎片是怎么产生的呢?简单理解就是由于更新和删除产生一些碎小的不能被再次使用的空间,根据每原创 2012-08-21 10:02:51 · 239 阅读 · 0 评论 -
分布式设计与开发 memcached分布式
memcached是应用最广的开源cache产品,它本身不提供分布式的解决方案,我猜想一方面它想尽量保持产品简单高效,另一方面cache的 key-value的特性使得让memcached分布式起来比较简单。memcached的分布式主要在于客户端,通过客户端的路由处理来搭建 memcached集群环境,因此在服务端,memcached集群环境实际上就是一个个memcached服务器的堆积品,环境原创 2012-09-10 11:25:24 · 332 阅读 · 0 评论 -
Oracle怎样标记坏块及一次数据恢复
Oracle数据文件的坏块,可分为物理坏块和逻辑坏块。物理坏块(也可以称为介质坏块)指的是块格式本身是坏的,块内的数据没有任何意义。而逻辑坏块,指的是块内的数据在逻辑是存在问题。比如说索引块的索引值没有按从小到大排列。物理坏块一般是由于内存问题、OS问题、IO子系统问题和硬件引起,逻辑坏块一般是是由于Oracle Bug等原因引起。Oracle数据文件的每个块,其块头为20字节。其定义如下原创 2012-10-18 11:02:56 · 365 阅读 · 0 评论 -
查出碎片最多的表
SELECT OWNER, SEGMENT_NAME TABLE_NAME, SEGMENT_TYPE TYPE, GREATEST(ROUND(100 * (NVL(HWM - AVG_USED_BLOCKS,0)/GREATEST(NVL(HWM,1),1) ), 2), 0) "WASTE_原创 2012-11-15 10:12:11 · 167 阅读 · 0 评论 -
使用swingbench实现oracle数据库压力测试
即将上线的数据库如何来评估其性能呢,swingbench是除了Benchmark Factory for Databases的不二之选,可以用短小精悍来形容,而且完全免费,也不用成天到晚google注册码,还等什么呢,赶紧来瞧瞧......一、swingbench介绍 是JAVA程序,当前分为两个版本,一个是2.3,一个是2.4,支持windons/linux/unix平台,测原创 2012-11-20 14:51:34 · 283 阅读 · 0 评论 -
高级SQL优化(三) 常用优化工具 ——《12年资深DBA教你Oracle开发与优化——性能优化部分》
目录:Oracle数据完整性和锁机制 索引及优化之表分析 表分析、约束及表间关系 Oracle体系结构1Oracle体系结构2 海量数据库及分区1 海量数据库及分区2 海量数据库及分区3 海量数据库及分区4 高级SQL优化(一) 高级SQL优化(二) 高级SQL优化(三) 常用优化工具 PPT和源码下载: http://sishuok.原创 2012-12-12 11:12:10 · 218 阅读 · 0 评论 -
处理LOB大对象的解决方法
数据库版本:oracle10.2.0.4.0操作系统:Red Hat Enterprise Linux AS release 4表空间: CENTERDBT 巡检中发现数据库占用了系统160G的空间,但是实际上并没有存储那么多的数据量,可以根据下面的步骤,来判断,是什么占用那么多的磁盘空间。CENTERDBT表空间占用系统160G,使用下面语句来查看表空间占用大小.SELE原创 2012-12-12 16:41:43 · 508 阅读 · 0 评论 -
高级SQL优化(三) 常用优化工具 ——《性能优化部分》
Oracle数据完整性和锁机制 索引及优化之表分析 表分析、约束及表间关系 Oracle体系结构1Oracle体系结构2 海量数据库及分区1 海量数据库及分区2 海量数据库及分区3 海量数据库及分区4 高级SQL优化(一) 高级SQL优化(二) 高级SQL优化(三) 常用优化工具 PPT和源码下载: http://sishuok.com/f转载 2012-12-13 09:55:09 · 279 阅读 · 0 评论 -
行链接和行迁移的秘密
一、概述: 如果你的Oracle数据库性能低下,行链接和行迁移可能是其中的原因之一。我们能够通过合理的设计或调整数据库来阻止这个现象。 行链接和行迁移是能够被避免的两个潜在性问题。我们可以通过合理的调整来提高数据库性能。本文主要描述的是: 什么是行迁移与行链接 如何判断行迁移与行链接 如何避免行迁移与行链接 当使用索引读取单行时,行迁移影翻译 2012-12-28 13:39:10 · 168 阅读 · 0 评论 -
Oracle日常性能查看
判断回滚段竞争的SQL语句:(当Ratio大于2时存在回滚段竞争,需要增加更多的回滚段)select rn.name, rs.GETS, rs.WAITS, (rs.WAITS / rs.GETS) * 100 ratiofrom v$rollstat rs, v$rollname rnwhere rs.USN = rn.usn 判断恢复日志竞争的SQL语句:(immediat原创 2013-01-22 11:16:59 · 233 阅读 · 0 评论 -
一个通过添加本地分区索引提高SQL性能的案例
今天接到同事求助,说有一个select query,在Oracle上要跑一分多钟,他希望能在5s内出结果,该sql如下:[sql] view plaincopyprint?Select /*+ parallel(src, 8) */ distinct src.systemname as systemname , src原创 2013-05-27 09:15:01 · 160 阅读 · 0 评论 -
oracle等待事件以及解决方案
我们可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息,从而可确定出产生瓶颈的类型及其对象。 v$session_wait的p1、p2、p3告诉我们等待事件的具体含义,根据事件不同其内容也不相同,下面就一些常见的等待事件如何处理以及如何定位热点对象和阻塞会话作一些介绍。 db file scattered read DB 文件分散读取原创 2013-05-27 16:59:23 · 216 阅读 · 0 评论 -
如何对index 的block进行dump
需要经常对index block进行分析,dump的过程如下:1,新建一个表test,SQL> create table test as select spid from v$process;表已创建。2,新建一个表以后,在这个表的列上新建一个索引;SQL> create index testindx on test(spid);索引已创建。把b原创 2013-09-02 14:22:08 · 296 阅读 · 0 评论