当前位置:文档之家› Oracle_Database10g_性能调整与优化-第12章_V$视图

Oracle_Database10g_性能调整与优化-第12章_V$视图

Oracle_Database10g_性能调整与优化-第12章_V$视图
Oracle_Database10g_性能调整与优化-第12章_V$视图

高级DBA经常告诉刚刚入行的DBA,在Oracle 6年代,他们曾经将每一张V $视图烂熟于心。在Oracle 6中,仅仅只有23个V$视图,那时侯的DBA可以很轻松地使用它们。而在Oracle 9i中,有259个V$视图以及近400个X$表;现在Oracle 10gR2 (10.2.0.1.0) 有372个V$视图和613个X$表。

几乎所有的出色调整或者DBA产品都有一个共性。它们中的大多数都是通过访问V$视图来获取从数据库、单个查询、或者单个用户检索出来的内部信息。通过Joe Trezzo和其他V$宗师们大量的介绍,访问V$视图已经变得越来越普遍。只有在看过V$视图之后,您才能体会之前的欠缺。V$视图可以全面、准确地展示Oracle数据库的核心信息。它是将普通水平的管理人员变为DBA专家的纽带。

第13章将更全面地介绍X$表,该表是V$视图的底层部分。附录B和C提供了V$视图的相关信息,以及X$表的创建脚本。遗憾的是,由于篇幅所限,我不能展示每一个V$脚本,我也不想重复其他章节已经深入讨论过的内容。请查看我们的网站(https://www.doczj.com/doc/138289257.html,)来获得最新的可使用的V$脚本。

本章主要内容:

●创建V$视图并设置其访问权限

●获得所有V$视图的列表

●获得组成V$视图的X$脚本的列表

●检查组成DBA_视图的底层对象

●查询V$DATABASE,以获得数据库的创建时间和归档信息

●了解自动工作量仓库(Automatic Workload Repository,简称AWR)

●查询V$LICENSE,以查看许可限制和警告设置

●访问V$OPTIONS,以查看所有已经安装的选项

●查询V$SGA来分配Oracle的基本内存

●查询V$SGSSTAT来详细分配Oracle的内存

●在V$PARAMETER中查找init.ora的设置

●测定数据的命中率(V$SYSSTAT)

●测定数据字典的命中率(V$ROWCACHE)

创建时均以v_$作为这些视图的前缀。catldr.sql脚本创建了两张视图,用于SQL*Loader的直接加载的统计信息。每个V$视图的底层视图定义(从技术角度讲,这些视图从没有被创建,它们的定义只是以二进制形式硬编码)可以通过

名为V$FIXED_VIEW_DEFINITION的V$视图查看。视图是通过选取一个或多个X$表中的信息来创建的。系统为每一个v_$视图创建了一个可以允许用户访问的视图。用户不能访问实际的v$视图(他们实际上是访问v_$视图;v$对象只对SYS 用户可见),所以,该方法通过在一个视图上创建另一个视图的方法提供了对这些视图的访问。然后,视图的前缀改为了V$。最后,因为SYS用户拥有这些表,每个视图上就创建了一个公共同名视图。下面的程序清单展示了一个用catalog. sql创建V$视图的示例

create or replace view gv_$datafile as

select *

from gv$datafile;

create or replace public synonym gv$datafile for gv_$datafile;

下文详细描述了整个事件的完整步骤:

(1) 当创建数据库时,根据X$表创建GV$视图的定义:

create or replace view gv$fixed_table as

select inst_id,kqftanam, kqftaobj, 'TABLE', indx

from X$kqfta

union all

select inst_id,kqfvinam, kqfviobj, 'VIEW', 65537

from X$kqfvi

union all

select inst_id,kqfdtnam, kqfdtobj, 'TABLE', 65537

from X$kqfdt;

(2) 执行版本特定的目录脚本:

SQL> @catalog

(3) 根据V$视图创建v_$视图:

create or replace view v_$fixed_table

as

select * from v$fixed_table;

(4) 再根据v_$视图创建新的V$同名视图:

create or replace public synonym v$fixed_table for v_$fixed_table;

技巧:

SYSTEM 访问的V$视图实际上是指向v_$视图的同名视图,而v_$视图是以根据X$表创

建的原始V$视图为基础而建立的视图(最好将上面的话多读几遍)。 这些视图上唯一可以执行的操作就是SELECT 。为了用户能够访问V$视图,必须授于用户访问底层的v_$视图的权限。不能授于用户访问V$视图的权限(即使是SYS 用户):

connect sys/change_on_install as sysdba

Grant select on v$fixed_table to richn;

ORA-02030: can only select from fixed tables/views.

尽管在尝试授权访问V$FIXED_TABLE 时返回的错误消息反映了不正确的信息(紧接前面的代码),但授权仍然无法实现。然而,可以授权访问V$视图底层的v_$视图。

要与SYS 超级用户连接,请使用下面的语句:

Connect sys/change_on_install as sysdba

Connected.

要向指定用户授于访问底层视图的权限,请使用下列语句:

grant select on v_$fixed_table to richn;

Grant succeeded.

要以指定的用户身份连接,请使用下列语句:

conn richn/tusc

Connected.

使用下列的语句来访问V$FIXED_TABLE

视图,它是根据V_$FIXED_TABLE创

建的同名视图:

select count(*)

from v$fixed_table;

COUNT(*)

--------

1224

尽管已经过授权,仍然不能访问v_$fixed_table:

select count(*)

from v_$fixed_table;

ORA-00942: table or view does not exist.

如果加上前缀SYS,就可以访问v_$fixed_table了:

conn richn/tusc

select count(*)

from SYS.v_$fixed_table;

COUNT(*)

--------

1224

为了避免混淆,最好是授于对v_$表的访问权限,并通知DBA用户可访问V$视图。通过这个方法,就可以授权他人访问V$视图的信息,而不用向他们提供S YS或者SYSTEM账户的密码。关键是对他SYS所有的原始v_$视图授予SELECT 权限。

技巧:

当其他的DBA需要访问V$视图的信息,但是没有SYS或SYSTEM密码时,可以授予他们

访问v_$视图的权限。然后这些用户就可以访问与v_$视图具有公共同名的V$视图。然

而,所写的脚本必须直接查询SYS.V_$视图,以避免重引用公共同名视图造成的性能损

失。

警告:

应该仅在需要的时候才授于非DBA用户访问V$视图的权限,并且要小心谨慎。记住,查

询V$视图会造成性能损失,并且您的环境越复杂,这些损失就越多。

12.1.1 获得所有V$视图的数量和列表

要获得某个版本的Oracle的所有V$视图的数量,可以查询V$FIXED_TABLE 视图。即使是同一个版本,V$视图的数量也会变化。下面的示例显示了针对Ora cle 10g的V$视图查询。每一个新版本Oracle中的V$视图的数量一直在不断膨胀。下面程序清单展示了获得V$视图数量的查询:

select count(*)

from v$fixed_table

where name like 'V%';

COUNT(*)

--------

372

许多V$视图仍然没有记入技术资料文档。随着视图数据的增长,在Oracle 中探索数据的方法变得越来越多。在Oracle 8中,引入了GV$视图。GV$视图(全局V$)与V$视图基本一样,只是附加了一个实例ID列。

下面的程序清单给出了GV$视图的部分列表(仅是部分列表;完整的列表见附录B)。

select name

from v$fixed_table

where name like 'GV%'

order by name;

NAME

---------------------------------

GV$ACCESS

GV$ACTIVE_INSTANCES

GV$ACTIVE_SERVICES

GV$ACTIVE_SESSION_HISTORY

GV$ACTIVE_SESS_POOL_MTH

GV$ADVISOR_PROGRESS

GV$ALERT_TYPES

GV$AQ1

GV$ARCHIVE

GV$ARCHIVED_LOG

GV$ARCHIVE_DEST

GV$ARCHIVE_DEST_STATUS

GV$ARCHIVE_GAP

GV$ARCHIVE_PROCESSES

...

技巧:

查询V$FIXED_TABLE 视图可以获得数据库中所有的GV$视图和V$视图。GV$视图和V$视

图几乎完全一样,但实例ID 列包含了一个标识符。 12.1.2 查找用于创建V$视图的X$表

为了理解V$视图的信息是从何处得到的,可以查询底层的X$表(查阅第13章了解更详细的信息)。有时候,查询底层的X$表可能更有利,因为V$视图通常根据多个X$表连接得到。X$表非常隐秘,因为它和Oracle 数据字典的底层表结构很相似。Oracle 在SGA 中创建V$视图,使用户可以以一种更便于阅读的格式来检查X$表中存储的信息。实际上,当在V$视图上执行SELECT 操作时,SELEC T 操作负责从SGA 中提取信息—— 更明确地说,是从X$表中提取信息。

在了解SELECT 所操作的底层V$视图后,您就有能力创建自定义视图;直接复制Select 语句底层的V$视图,然后修改或者创建一个针对X$表的新定制的S ELECT 语句。这个技术可创建出更具选择性和更加优化的查询。下面的程序清单用于访问对底层X$表的查询。为了获得组成V$视图的X$表的列表,必须访问V $FIXED_TABLE_DEFINITION 视图(输出结果已经过格式设置,更便于阅读)。 select *

from v$fixed_view_definition

where view_name = 'GV$FIXED_TABLE';

输出结果

VIEW_NAME VIEW_DEFINITION

-------------- ------------------------------------------------

GV$FIXED_TABLE select inst_id,kqftanam, kqftaobj, 'TABLE', indx

from X$kqfta

union all

select inst_id,kqfvinam, kqfviobj, 'VIEW', 65537

from X$kqfvi

union all

select inst_id,kqfdtnam, kqfdtobj, 'TABLE', 65537

from X$kqfdt

技巧:

访问V$FIXED_TABLE_DEFINITION 视图可以获得组成V$视图的底层X$表的所有信息。 同样需要注意的是,在Oracle 8中,底层的X$表存在索引,以使在V$

视图上执行的查询可以更快地执行。可以通过V$INDEXED_FIXED_COLUMN 视图来查看在底层X$表上的索引信息(请查阅第13章以了解更详细的信息)。

12.1.3 查找组成DBA_视图的底层对象

有些人认为DBA_视图也是从X$表和/或者V$视图得到的。它们实际上是从O racle 底层数据库的表中得到的(当然也有些是通过访问X$表得到的)。下面的程序清单通过访问DBA_VIEWS 来查看组成DBA_视图的对象。

注意:

可能需要将长度设置为2 000 000来查看所有的输出结果。

select text

from dba_views

where view_name='DBA_IND_PARTITIONS’;

TEXT

------------------------------------------------------------------------

select https://www.doczj.com/doc/138289257.html,, https://www.doczj.com/doc/138289257.html,, 'NO', io.subname, 0, ip.hiboundval, ip.hiboundlen SQL> set long 2000000

(RUN IT AGAIN)

select text

from dba_views

where view_name='DBA_IND_PARTITIONS';

TEXT

------------------------------------------------------------------------

select https://www.doczj.com/doc/138289257.html,, https://www.doczj.com/doc/138289257.html,, 'NO', io.subname, 0, ip.hiboundval,ip.hiboundlen, ip.part#,decode(bitand(ip.flags, 1), 1, 'UNUSABLE', 'USABLE'), https://www.doczj.com/doc/138289257.html,,

ip.pctfree$,ip.initrans, ip.maxtrans, s.iniexts * ts.blocksize,

decode(bitand(ts.flags, 3), 1, to_number(NULL), s.extsize *

ts.blocksize),

s.minexts,s.maxexts,decode(bitand(ts.flags,3),1,to_number(NULL),s

.extpct),

decode(bitand(ts.flags, 32), 32, to_number(NULL),

decode(s.lists, 0, 1, s.lists)),

decode(bitand(ts.flags, 32), 32, to_number(NULL),

decode(s.groups, 0, 1, s.groups)),

decode(mod(trunc(ip.flags / 4), 2), 0, 'YES', 'NO'),

decode(bitand(ip.flags, 1024), 0, 'DISABLED', 1024, 'ENABLED', null),

ip.blevel, ip.leafcnt, ip.distkey, ip.lblkkey, ip.dblkkey,

ip.clufac, ip.rowcnt, ip.samplesize, ip.analyzetime,

decode(s.cachehint, 0, 'DEFAULT', 1, 'KEEP', 2, 'RECYCLE', NULL),

decode(bitand(ip.flags, 8), 0, 'NO', 'YES'), ip.pctthres$,

decode(bitand(ip.flags, 16), 0, 'NO', 'YES'),'',''

from obj$ io, indpart$ ip, ts$ ts, sys.seg$ s, user$ u

where io.obj# = ip.obj# and ts.ts# = ip.ts# and ip.file#=s.file# and

ip.block#=s.block# and ip.ts#=s.ts# and io.owner# = https://www.doczj.com/doc/138289257.html,er#

union all

select https://www.doczj.com/doc/138289257.html,, https://www.doczj.com/doc/138289257.html,, 'YES', io.subname, icp.subpartcnt,

icp.hiboundval, icp.hiboundlen, icp.part#, 'N/A', https://www.doczj.com/doc/138289257.html,,

icp.defpctfree, icp.definitrans, icp.defmaxtrans,

icp.definiexts, icp.defextsize, icp.defminexts, icp.defmaxexts,

icp.defextpct, icp.deflists, icp.defgroups,

decode(icp.deflogging, 0, 'NONE', 1, 'YES', 2, 'NO', 'UNKNOWN'),

'N/A', icp.blevel, icp.leafcnt, icp.distkey, icp.lblkkey, icp.dblkkey,

icp.clufac, icp.rowcnt, icp.samplesize, icp.analyzetime,

decode(icp.defbufpool, 0, 'DEFAULT', 1, 'KEEP', 2, 'RECYCLE', NULL),

decode(bitand(icp.flags, 8), 0, 'NO', 'YES'), TO_NUMBER(NULL),

decode(bitand(icp.flags, 16), 0, 'NO', 'YES'),'',''

from obj$ io, indcompart$ icp, ts$ ts, user$ u

where io.obj# = icp.obj# and icp.defts# = ts.ts# (+) and https://www.doczj.com/doc/138289257.html,er# = io.owner# union all

select https://www.doczj.com/doc/138289257.html,, https://www.doczj.com/doc/138289257.html,, 'NO', io.subname, 0,

ip.hiboundval, ip.hiboundlen, ip.part#,

decode(bitand(ip.flags, 1), 1, 'UNUSABLE',

decode(bitand(ip.flags, 4096), 4096, 'INPROGRS', 'USABLE')),

null, ip.pctfree$, ip.initrans, ip.maxtrans,

0, 0, 0, 0, 0, 0, 0,

decode(mod(trunc(ip.flags / 4), 2), 0, 'YES', 'NO'),

decode(bitand(ip.flags, 1024), 0, 'DISABLED', 1024, 'ENABLED', null),

ip.blevel, ip.leafcnt, ip.distkey, ip.lblkkey, ip.dblkkey,

ip.clufac, ip.rowcnt, ip.samplesize, ip.analyzetime,

'DEFAULT',

decode(bitand(ip.flags, 8), 0, 'NO', 'YES'), ip.pctthres$,

decode(bitand(ip.flags, 16), 0, 'NO', 'YES'),

decode(i.type#,

9, decode(bitand(ip.flags, 8192), 8192, 'FAILED', 'VALID'),''),

ipp.parameters

from obj$ io, indpartv$ ip, user$ u, ind$ i, indpart_param$ ipp, tab$ t where io.obj# = ip.obj# and io.owner# = https://www.doczj.com/doc/138289257.html,er# and

ip.bo# = i.obj# and ip.obj# = ipp.obj# and i.bo# = t.obj# and

bitand(t.trigflag, 1073741824) != 1073741824

and https://www.doczj.com/doc/138289257.html,space = 4 and io.remoteowner IS NULL and iolinkname IS NULL

切勿修改底层的对象;许多DBA 就是因为修改了这些对象而导致他们的数据库崩溃。不要执行以下代码,但要注意它是可以执行的:

Connect sys/change_on_install as sysdba

Connected.

DELETE FROM OBJAUTH$; -- Don ’t do this! If you commit thi s, your database i s over! 13923 rows deleted.

Rollback;

Rollback complete.

技巧:

DBA_视图不是从X$表或者V$视图派生的。事实上,可以从obj$中删除行数据这一特性

尽量不要以SYS 超级用户的身份执行类似操作。

12.1.4 使用有帮助的V$脚本

本章的剩余部分将致力于介绍有助于分析Oracle 数据库的不同方面的脚本。大部分脚本是动态的,并且能够针对需要分析的数据库的相应领域提供有价值的内部信息,以确定在一个时间点上是否有资源争用现象。通常情况下,DBA 立即执行一些操作,通过调整查询或者增加init.ora 参数值来减少未来资源争用。撤消特定查询

用户的访问权限,或者通过配置文件来限制其占用的系统资源,也可作为一个紧急的处理措施。下文的三个部分包括了可以检索以下信息的脚本:

●基本的数据库信息

●有关自动工作量仓库(AWR)的信息

●基本的许可信息

●数据库中已安装的数据库选项

1. 基本的数据库信息

获得实例的基本信息通常就像登录SQL*Plus一样简单,因为所有的信息都显示在标题栏(banner)上。如果想查看完整的标题栏的题头,可以访问V$VERSION视图来显示标题栏。下面的程序清单显示了一种快速的方法,以查看您使用的数据库版本信息和其他相关信息:

版本信息:

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Prod

PL/SQL Release 10.2.0.1.0 – Production

CORE 10.2.0.1.0 Production

TNS for 32-bit Windows: Version 10.2.0.1.0 – Production

NLSRTL Version 10.2.0.1.0 – Production

数据库信息:

select name, created, log_mode

from v$database;

NAME CREATED LOG_MODE

--------- --------- ---------------

ORCL 03-DEC-04 ARCHIVELOG

访问V$DATABASE

视图可以获得数据库的基本信息。输出结果中最重要的信息确

保您正处在所需要的ARCHIVELOG模式中。查看数据库的归档日志状态的另一种方法是使用ARCHIVE LOG LIST命令作为SQL*Plus中的SYS用户。如下所示,输出结果还提供了数据库创建的准确日期。

技巧:

查询V$VERSION和V$DATABASE视图,可以获得数据库的基本信息,例如版本信息,以确

定创建数据库的信息以及基本的归档信息。

2. 自动工作量仓库(AWR) 的基本信息

随着自动工作量仓库(AWR)的出现,需要注意许多地方。默认情况下,仓库用小时填充,保留期是7天。对于AWR而言,需要知道一些查询(MMON后台进程用来让A WR数据从内存流到磁盘)。关于AWR的详细信息请参考第5章,它依据AWR与V$相关的视图以及为了调整而使用来自AWR的信息。

AWR使用多少空间?

Select occupant_name, occupant_desc, space_usage_kbytes

from v$sysaux_occupants

where occupant_name like '%AWR%';

OCCUPANT_NAME OCCUPANT_DESC SPACE_USAGE_KBYTES

------------- --------------------------------------- ------------------

SM/AWR Server Manageability - Automatic Workload Repository 44352 系统上最原始的AWR信息是什么?

select dbms_stats.get_stats_history_availability from dual;

GET_STATS_HISTORY_AVAILABILITY

------------------------------------------------------------------------

03-NOV-06 09.30.34.291000000 AM -06:00

什么是AWR信息的保留期?

select dbms_stats.get_stats_history_retention from dual;

GET_STATS_HISTORY_RETENTION

---------------------------

31

将AWR信息的保留期更改为15天?

EXEC dbms_stats.alter_stats_history_retention(15);

GET_STATS_HISTORY_RETENTION

---------------------------

15

技巧:

查询V$SYSAUX_OCCUPANTS以确保自动工作量仓库(AWR)没有占用过多空间。使用Use

DBMS_STATS检查历史和保留。

3. 基本的许可信息

V$LICENSE视图允许DBA监控系统内任何时候有关数据库数量的所有系统活动的数量。它提供了一个记载任何时候最大并发会话数的日志,这就允许公司确保他们获得了正确的许可。当前会话数量与会话警告级别和会话最大级别一起显示。会话警告级别为0表示没有设置init.ora会话警告参数,所以系统不会显示警告信息。会话最大级别为0表示没有设置init.ora会话最大参数,所以系统不会限制会话的数量。

应该定期执行脚本,以向DBA提供系统一天中实际的会话数量,从而保证正确的许可授权。设置init.ora参数LICENSE_MAX_SESSIONS = 110,将会话数限制为110。设置init.ora参数LICENSE_SESSIONS_WARNING = 100,系统将向每位在第100个会话之后的用户显示警告信息,这样他们就会通知DBA,系统因遇到问题而关闭(希望能如此)。init.ora参数LICENSE_MAX_USERS用于设置数据库中可以创建的已命名的用户数。在以下程序清单中,该值为0,所以没有限制。

select *

from v$license;

SESS_MAX SESS_WARNING SESS_CURRENT SESS_HIGHWATER USERS_MAX

-------- ------------ ------------ -------------- ---------

110 100 44 105 0 (selected columns listed above)

技巧:

查询V$LICENSE视图,以查看所允许的最大会话数。也可以在接近最大数时设置警告。

4. 数据库中已安装的产品项

下面程序清单中的脚本描述了数据库中已经安装的产品项,以及可用状况。如果您购买了一项产品,该产品没有显示在列表中,则可能是您没有正确地安装它。查询V$OPTION视图来检查已经安装的产品,或者登录到SQL*Plus来检查已经安装的产品(开源数据库能做到吗?)。

select *

from v$option;

为了获得以下的输出结果,需要按PARAMETER排序。

输出结果

PARAMETER VALUE

---------------------------------------- -------------------------

Partitioning TRUE

Objects TRUE

Real Application Clusters FALSE

Advanced replication TRUE

Bit-mapped indexes TRUE

Connection multiplexing TRUE

Connection pooling TRUE

Database queuing TRUE

Incremental backup and recovery TRUE

Instead-of triggers TRUE

Parallel backup and recovery TRUE

Parallel execution TRUE

Parallel load TRUE

Point-in-time tablespace recovery TRUE

Fine-grained access control TRUE

Proxy authentication/authorization TRUE Change Data Capture TRUE Plan Stability TRUE Online Index Build TRUE Coalesce Index TRUE Managed Standby TRUE Materialized view rewrite TRUE Materialized view warehouse refresh TRUE Database resource manager TRUE Spatial TRUE Visual Information Retrieval TRUE Export transportable tablespaces TRUE Transparent Application Failover TRUE

Fast-Start Fault Recovery TRUE Sample Scan TRUE Duplexed backups TRUE Java TRUE OLAP Window Functions TRUE

Block Media Recovery TRUE

Fine-grained Auditing TRUE Application Role TRUE Enterprise User Security TRUE Oracle Data Guard TRUE Oracle Label Security FALSE OLAP TRUE Table compression TRUE

Join index TRUE

Trial Recovery TRUE

Data Mining

TRUE

Online Redefinition TRUE

Streams Capture TRUE

File Mapping TRUE

Block Change Tracking TRUE

Flashback Table TRUE

Flashback Database TRUE

Data Mining Scoring Engine FALSE

Transparent Data Encryption FALSE

Backup Encryption FALSE

Unused Block Compression TRUE

54 rows selected.

上面的数据库提供了Partitioning选项,但它没有安装实时应用群集(Real Ap plication Clusters,RAC)。

技巧:

查询V$OPTION视图,可以获取您已安装的Oracle产品项。V$VERSION视图将给出已安

装的基本产品项的版本。

12.1.5 内存分配摘要(V$SGA)

如下所示,V$SGA视图给出了系统的系统全局区(System Global Area,SGA)内存结构的摘要信息。Data Buffers是在内存中分配给数据的字节数量。它根据init. ora的参数DB_CACHE_SIZE得到。Redo Buffers主要是依据init.ora参数LOG_BUF FER计算得到,每当COMMIT命令提交数据时,它被用于缓存已改变的记录并将它们保存到重做日志中。

COLUMN value FORMAT 999,999,999,999

select *

from v$sga;

NAME VALUE

------------------------------ ----------------

Fixed Size 734,080

Variable Size 352,321,536

Database Buffers 2,667,577,344

Redo Buffers 1,335,296 如果使用SGA_TARGET —— 内部动态调整大小:

select (

(select sum(value) from v$sga) -

(select current_size from v$sga_dynamic_free_memory)

) "SGA_TARGET"

from dual;

SGA_TARGET

----------

138412032

这个输出结果说明一个相对较大的SGA 有超过2.5GB 的缓冲区,该缓冲区缓存包括DB_CAC HE_S IZE 、D B_K EEP _CA CHE _SI ZE 和D B_R ECY CLE _CA CHE_SIZ E 。如第1章和第4章所述,只将SG A_TARG ET 设置为3G ,将其他参数设置为强制最小值。V ari able S ize 项中较为突出的部分是共享池(该SGA 的共享池略大于200MB)。程序清单中的SGA 使用了大约3GB 的实际系统的物理内存。这些信息也可以在S tat spa ck 报告(参阅第14章)中给出,并且SYS 超级用户使用S HOW S GA 命令也可以显示该信息。

技巧:

访问V$SGA 视图可以得到系统的物理内存分配的基本概念,包括在Oracle 中为数据、共

享池、large 池、java 池以及日志缓冲区分配的内存。

12.1.6 内存分配的细节(V$SGASTAT)

在V$视图中,可以查询V $SG AST AT 视图来提供有关S GA 更详细的内存分配信息。这个视图提供了SGA 和内存资源的动态信息(访问数据库时会出现相应变化)。这个语句非常详细地描述了SGA 的尺寸。在V$SGA 和V$S GAS TAT 视图中均包含记录F IXED _SG A 、BUF FER _CA CHE 和LOG _BU FFE

R,且它们在这两个视图中的值均相等。V$SGA STAT视图中的剩余记录组成了V$SGA视图中唯一的其他记录(Va ria ble S ize或Sha red P ool记录)。

Fixed Size (V$SGA) = fixedsga (V$SGASTAT)

Database Buffers (V$SGA) = buffercache (V$SGASTAT)

Redo Buffers (V$SGA) = logbuffer (V$SGASTAT)

Variable Size (V$SGA) = 39 Other Records (V$SGASTAT)

在Ora cle9.2中,V$SG AST AT视图共有43个记录,如下程序清单所示

select *

from v$sgastat;

POOL NAME BYTES

------------ -------------------------- ----------

fixed_sga 787828

buffer_cache 16777216

log_buffer 262144

shared pool KQR L SO 76800

shared pool KQR M PO 1414752

shared pool KQR M SO 242688

shared pool KQR S PO 157508

shared pool KQR S SO 512

shared pool KTI-UNDO 1235304

shared pool sessions 781324

shared pool sql area 11719164

...etc.

597 rows selected

在Sta tsp ack报告中(见第14章)也同样可显示这个信息,连同St ats pack报告持续期间的开始值和结束值一并给出。

技巧:

访问V$SGASTAT视图可获取Oracle SGA详细的分类列表以及共享池分配中各存储容器的

详细信息。

12.1.7 在V$PARAMETER中发现init.ora的设置

程序清单中的脚本显示了系统中的in it.ora参数。它还提供了有关参数的信息,确定每一个参数的当前值是否就是默认值(IS DEF AUL T=T RUE)。该脚本还显示了该参数是否可以通过alt er se ssi on命令修改,以及是否可以通过a lte r sys tem命令修改(IS SYS_MO DIF IAB LE=I MME DIA T E)。那些可以被a lte r ses sion和al te sy stem命令修改的参数,是通过修改初始化文件然后关闭并重启实例来实现的。程序清单中的示例(来自O rac le9.2)显示了可以被alt er命令修改的部分初始化参数(I MME DIA TE意味着它可以被修改并立即生效)。注意,您可以使用AL TER命令,但对于有些参数而言,例如o7_di cti ona ry_acc ess ibi lity,就只能使用A LTE R SYS TEM...S COPE=SP FIL E 命令来修改它,然后弹出数据库让它生效。

select name, value, isdefault, isses_modifiable,

issys_modifiable

from v$parameter

order by name;

查询V$PA RAM ETE R

NAME VALUE ISDEFAULT ISSES ISSYS_MOD

---------------------------- ---------- --------- ----- ---------

O7_DICTIONARY_ACCESSIBILITY FALSE TRUE FALSE FALSE

__db_cache_size 16777216 FALSE FALSE IMMEDIATE

__shared_pool_size 58720256 FALSE FALSE IMMEDIATE

active_instance_count TRUE FALSE FALSE

aq_tm_processes 0 TRUE FALSE IMMEDIATE

archive_lag_target 0 TRUE FALSE IMMEDIATE

asm_diskgroups TRUE FALSE IMMEDIATE

asm_diskstring TRUE FALSE IMMEDIATE

web性能优化(服务器优化)

Web网站性能优化的相关技术 来源:站长网 https://www.doczj.com/doc/138289257.html, 2011-03-04 06:50:47 Web站点性能问题吸引或者迫使越来越多的人投入到这个问题的研究中来,产生了很多解决方案。下面是我根据自身的理解对这些技术进行了归类总结,如有不足之处欢迎拍砖。 一、提高服务器并发处理能力 我们总是希望一台服务器在单位时间内能处理的请求越多越好,这也成了web 服务器的能力高低的关键所在。服务器之所以可以同时处理多个请求,在于操作系统通过多执行流体系设计,使得多个任务可以轮流使用系统资源,这些资源包括CPU、内存以及I/O等。这就需要选择一个合适的并发策略来合理利用这些资源,从而提高服务器的并发处理能力。这些并发策略更多的应用在apache、nginx、lighttpd等底层web server软件中。 二、Web组件分离 这里所说的web组件是指web服务器提供的所有基于URL访问的资源,包括动态内容,静态网页,图片,样式表,脚本,视频等等。这些资源在文件大小,文件数量,内容更新频率,预计并发用户数,是否需要脚本解释器等方面有着很大的差异,对不同特性资源采用能充分发挥其潜力的优化策略,能极大的提高web 站点的性能。例如:将图片部署在独立的服务器上并为其分配独立的新域名,对静态网页使用epoll模型可以在大并发数情况下吞吐率保持稳定。 三、数据库性能优化和扩展。 Web服务器软件在数据库方面做的优化主要是减少访问数据库的次数,具体做法就是使用各种缓存方法。也可以从数据库本身入手提高其查询性能,这涉及到数据库性能优化方面的知识本文不作讨论。另外也可以通过主从复制,读写分离,使用反向代理,写操作分离等方式来扩展数据库规模,提升数据库服务能力。 四、Web负载均衡及相关技术 负载均衡是web站点规模水平扩展的一种手段,实现负载均衡的方法有好几种包括基于HTTP重定向的负载均衡,DNS负载均衡,反向代理负载均衡,四层负载均衡等等。 对这些负载均衡方法做简单的介绍:基于HTTP重定向的负载均衡利用了HTTP 重定向的请求转移和自动跳转功能来实现负载均衡,我们熟悉的镜像下载就使用这种负载均衡。DNS负载均衡是指在一个DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时返回不同的解析结果将客户端的访问引到不同的机

网络优化解决方案

网优中心 针对多厂家交换数据的装置 基于数据仓库技术的元数据驱动设计及多维分析方法 基于 基于数据仓库多维分析方法的网络性能分析、指标( 网络运行性能、运行资源、运行收益及客户满意度的综合分析网络关键数据的自动发布、监控告警体系 网络容量、性能、负荷等运行趋势分析、预测 网络资源、负荷、话务等均衡优化 基于 用户自定义的多维报表体系 为网络的中高级领导层提供管理决策支持 为网络的综合监测、网络优化、网络规划提供服务

参数高速的跟踪分析,发现影响网络性能的关键参数及参数最优设置 运行参数与设计参数的对比分析,指导参数的设置和检查规划数据的合理性不同时期的参数对比分析,发现影响网络性能的关键参数及参数最优设置可视化、地理化的参数查询 运行参数自动合理性检查 适应网络体系结构的变化,可以进行基站割接、增加和删除等操作 根据不同的用户设置不同的权限 方便的网优维护日志管理 针对多厂家话务数据的装载 主要网元( 可由用户自定义的网络性能指标体系和计算公式 多维度的指标分析、追踪 异常网元的定位 网络性能指标的地理化分析 实时自动生成用户定义的动态报表体系 自动生成专业的分析报告 针对典型网络问题的专家分析 用户定义的网络性能监控与报警 针对单个或多个呼叫过程的跟踪、分析 失败事件的统计、跟踪和分析,根据失败信令点的无线环境和 小区无线指标分布分析( 小区无线统计报告 移动网络测试优化分析系统

带有数字化电子地图实时地理导航 测试和回放时所有窗口实时关联、互相对应测试时自动识别网络 广播信道 时隙测试功能 CQT

强制切换测试和锁频测试 可同时对移动 实时邻频干扰载干比测试 GSM 测试和回放时测试点与服务主小区实时连线 扫频支持: 支持 主叫自动拨号、被叫自动应答 CDD 地理化描述无线网络的各项测试参数 专题分析无线下行覆盖、干扰、切换等网络问题 话务数据的地理化观测 准确的双网关对比统计报告,用户可选的强大综合统计报告空闲 频率复用的地理化观测 利用高速扫频数据做信号传播及干扰分析 主小区的 六个邻小区信息 三层信令信息 信道和无线 SQI 网络参数信息( 信令事件实时显示和统计 采集事件实时显示和统计 GSM/DCS 协议支持 对于 连续信道场强扫频速度 设备尺寸长 移动网络室内测试系统

2020年(Oracle管理)Oracle SQL性能优化方法

(Oracle管理)Oracle SQL性能优化方法

OracleSQL性能优化方法探讨 Oracle性能优化方法(SQL篇)1 1综述2 2表分区的应用2 3访问Table的方式3 4共享SQL语句3 5选择最有效率的表名顺序5 6WHERE子句中的连接顺序.6 7SELECT子句中避免使用’*’6 8减少访问数据库的次数6 9使用DECODE函数来减少处理时间7 10整合简单,无关联的数据库访问8 11删除重复记录8 12用TRUNCATE替代DELETE9 13尽量多使用COMMIT9 14计算记录条数9 15用Where子句替换HAVING子句9 16减少对表的查询10 17通过内部函数提高SQL效率.11 18使用表的别名(Alias)12 19用EXISTS替代IN12 20用NOT EXISTS替代NOT IN13 21识别低效执行的SQL语句13

22使用TKPROF 工具来查询SQL性能状态14 23用EXPLAIN PLAN 分析SQL语句14 24实时批量的处理16

1综述 ORACLE数据库的性能调整是个重要,却又有难度的话题,如何有效地进行调整,需要经过反反复复的过程。在数据库建立时,就能根据应用的需要合理设计分配表空间以及存储参数、内存使用初始化参数,对以后的数据库性能有很大的益处,建立好后,又需要在应用中不断进行应用程序的优化和调整,这需要在大量的实践工作中不断地积累经验,从而更好地进行数据库的调优。 数据库性能调优的方法 ●调整内存 ●调整I/O ●调整资源的争用问题 ●调整操作系统参数 ●调整数据库的设计 ●调整应用程序 本文针对应用程序的调整,来说明对数据库性能如何进行优化。 2表分区的应用 对于海量数据的表,可以考虑建立分区以提高操作效率。建立分区一般以关键字为分区的标志,也可以以其他字段作为分区的标志,但效率不如关键字高。建立分区的语句在建表时可以进行说明: createtableTABLENAME() partitionbyrange(PutOutNo) (partitionPART1valueslessthan(200312319999) partitionPART2valueslessthan(200412319999)

大数据库优化(SQLServer)

SQL SERVER性能优化综述 近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在 网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或 者过时(可能对SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以 前的经验和测试结果进行总结了。 我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的。所以我希望按照软件生命周期的不同阶段来总结数据库性能优化相关的注意事项。 一、分析阶段 一般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性、可用性、可靠性、安全性需求往往吸引了我们大部分的注意力,但是,我们必须注意,性能是很重要的非功能 性需求,必须根据系统的特点确定其实时性需求、响应时间的需求、硬件的配置等。最好能 有各种需求的量化的指标。 另一方面,在分析阶段应该根据各种需求区分出系统的类型,大的方面,区分是OLTP(联机事务处理系统)和OLAP(联机分析处理系统)。 二、设计阶段 设计阶段可以说是以后系统性能的关键阶段,在这个阶段,有一个关系到以后几乎所有性能 调优的过程—数据库设计。 在数据库设计完成后,可以进行初步的索引设计,好的索引设计可以指导编码阶段写出高效 率的代码,为整个系统的性能打下良好的基础。 以下是性能要求设计阶段需要注意的: 1、数据库逻辑设计的规范化 数据库逻辑设计的规范化就是我们一般所说的范式,我们可以这样来简单理解范式: 第1规范:没有重复的组或多值的列,这是数据库设计的最低要求。 第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组 成部分。消除部分依赖,大部分情况下,数据库设计都应该达到第二范式。 第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖,达到第三范式应该是系统中大部分表的要求,除非一些特殊作用的表。 更高的范式要求这里就不再作介绍了,个人认为,如果全部达到第二范式,大部分达到第三

OracleSQL性能优化方法

OracleSQL性能优化方法 Oracle性能优化方法(SQL篇) (1) 1综述 (2) 2表分区的应用 (2) 3访咨询Table的方式 (3) 4共享SQL语句 (3) 5选择最有效率的表名顺序 (5) 6WHERE子句中的连接顺序. (6) 7SELECT子句中幸免使用’*’ (6) 8减少访咨询数据库的次数 (6) 9使用DECODE函数来减少处理时刻 (7) 10整合简单,无关联的数据库访咨询 (8) 11删除重复记录 (8) 12用TRUNCATE替代DELETE (9) 13尽量多使用COMMIT (9) 14运算记录条数 (9) 15用Where子句替换HA VING子句 (9) 16减少对表的查询 (10) 17通过内部函数提高SQL效率 (11) 18使用表的不名(Alias) (12) 19用EXISTS替代IN (12) 20用NOT EXISTS替代NOT IN (13) 21识不低效执行的SQL语句 (13) 22使用TKPROF 工具来查询SQL性能状态 (14) 23用EXPLAIN PLAN 分析SQL语句 (14) 24实时批量的处理 (16)

1综述 ORACLE数据库的性能调整是个重要,却又有难度的话题,如何有效地进行调整,需要通过反反复复的过程。在数据库建立时,就能依照顾用的需要合理设计分配表空间以及储备参数、内存使用初始化参数,对以后的数据库性能有专门大的益处,建立好后,又需要在应用中不断进行应用程序的优化和调整,这需要在大量的实践工作中不断地积存体会,从而更好地进行数据库的调优。 数据库性能调优的方法 ●调整内存 ●调整I/O ●调整资源的争用咨询题 ●调整操作系统参数 ●调整数据库的设计 ●调整应用程序 本文针对应用程序的调整,来讲明对数据库性能如何进行优化。 2表分区的应用 关于海量数据的表,能够考虑建立分区以提高操作效率。建立分区一样以关键字为分区的标志,也能够以其他字段作为分区的标志,但效率不如关键字高。建立分区的语句在建表时能够进行讲明: create table TABLENAME() partition by range (PutOutNo) (partition PART1 values lessthan (200312319999) partition PART2 values lessthan (200412319999) 。。。。。。 如此,在进行大部分数据查询,数据更新和数据插入时,Oracle自动判定操作应该在哪个分区进行,幸免了整表操作,提高了执行的效率

网络优化月报模板

中国联通网络公司鸡西分公司日常无线网络优化月报 中国联通鸡西分公司WCDMA无线网日常网络优化月报 2012年9月 鸡西分公司网络优化中心

一、网络规模与现状 1、WCDMA宏基站、BBU、RRU、直放站、室内分布系统、塔放等网络规模现状: 2、无线资源汇总表 3、资源利用率统计表 注:VLR数据由核心网网管采集,取×月×日晚×点数据

二、本月主要无线网络KPI指标分析 1、忙时WCDMA无线网络指标 7、中国联通鸡西分 公司WCDMA无线网络KPI 2、异常指标趋势图和原因分析: (1)RAB建立成功率、无线系统接通率低 原因分析:本月15日休闲广场搞活动,用户量激增导致RAB建立成功 率、无线系统接通率低,16日指标恢复正常。 (2)语音RAB建立成功率、可是电话建立成功率低 原因分析:本月15日休闲广场搞活动,用户量激增导致RAB建立成功 率、无线系统接通率低,16日指标恢复正常。19日北府浴馆基站可视 电话申请1次成功0次导致可视电话接通率低。20日指标恢复正常。

(3)小区RAB建设拥塞率低 原因分析:本月15日休闲广场搞活动,用户量激增导致RAB建立成功 率、无线系统接通率低,16日指标恢复正常。 (4)语音掉话率、HSDPA掉话率、HSUPA掉话率高 (1)原因分析:本月2日鸡西大学基站故障导致语音掉话率、HSDPA掉话率、 HSUPA掉话率高,维护处理后3日指标恢复正常。 三、本月用户投诉分析总结 1、本月投诉整体总结: 本月共接到WCDMA网络投诉,40件,其中网络质量类投诉数量40件,本月已解决网络质量类投诉13件,2012年往月遗留的投诉问题本月解决数量0件。 3、WCDMA投诉分析: 根据《附表8、中国联通鸡西分公司WCDMA无线网日常投诉处理、现场测试记录(2012年9月).xlsx》,对整体投诉情况进分类分析:

中小企业网络应用优化和带宽管理解决方案

Maxnet中小企业网络应用优化和带 宽管理解决方案 迈科网络安全科技有限公司

目录 一、概述 (3) 二、中小型企业网络面临问题 (3) 三、Maxnet带宽应用解决方案 (4) 四、选择理由 (7) 五、可获收益 (8) 六、设备选型 (8)

一、概述 近年来企业的快速发展,在很大程度上得益于以网络技术为核心的信息化建设的持续推进,以及由此衍生出的基于网络平台的各项业务拓展。当前,企业的信息化建设和应用已不再仅仅是支撑业务开展的技术手段,而是成为各企业核心竞争力不可或缺的重要组成部分。目前网络现状为: 1、总部部署多台业务服务器,采用数据集中部署的方式,各地数据全部集中到总部的业务服务器; 2、业务系统采用Web方式在Internet上为社会各界人士提供服务;远程分支机构采用VPN方式实现和总部互联,进行数据交互; 3、企业邮件系统为集中方式,远程分支机构收发邮件时,必须连接到企业总部的邮件服务器; 4、企业分支机构和总部之间的主要业务:内部OA、IP电话、视频会议及其他基于TCP/IP协议的软件。 如果对各关键节点网络带宽不加以控制,则所有用户和应用连接到广域网的优先权都相同,即:基于"先到先得"的原则。用户或应用争用所分配的有限带宽,而不考虑他们的业务的重要性。因此,需要大量带宽的P2P应用、MP3 音乐下载、FTP 文件传输很可能占用大部分的网络带宽,这对拥有采用视频会议、ERP、VOIP以及VPN等应用连接的企业关键业务应用是非常不利的。对于视频会议、VOIP等类似的应用,它们对网络品质要求很高,仅仅依靠增加带宽并不是最好的解决方法,因为还要考虑延时、抖动、丢包等问题,这将会直接影响到应用的效果。因此在带宽固定的前提下,如何去控制延时、抖动、丢包等问题是决定此应用运行流畅与否的关键因素。 二、中小型企业网络面临问题 随着企业网络平台的大幅扩容和用户规模及流量的快速增长,各项企业业务对于网络平台的依赖度明显提升,企业公司网络运维压力与日俱增,企业急需对网络内流量及各种应用协议进行统计分析和有效管理,从而为新的网络规划和优化调整提供基础依据。 总体看来,现阶段企业的网络平台建设尚有以下几个方面的问题亟待解决: 1、缺乏对网络流量进行统一管理的机制及相应的硬件设备,致使网络管理维护部门无法及时掌握网络中各应用流量的运行情况,亦不能及时发现网络流量中存在的各类问题。 2.带宽使用效率低下,应用软件难于管控,特别是P2P等点对点传输软件(如

数据库性能优化基础步骤

1性能优化基本步骤 1.1定位跟踪耗费资源较多的SQL语句步骤 1.1.1 通过SQL查询 (1): 查询出最耗费资源的SQL语句 select t1.SID, t1.SERIAL#, tt.HASH_VALUE, tt.ADDRESS, tt.BUFFER_GETS, --读内存次数 tt.DISK_READS, --磁盘物理读次数 tt.EXECUTIONS, --语句的执行次数 tt.BUFFER_GETS / tt.EXECUTIONS, --平均读内存次数 tt.SQL_FULLTEXT from v$sqlareatt, v$session t1 where (tt.BUFFER_GETS>100000 or tt.DISK_READS>100000) and tt.HASH_VALUE = t1.SQL_HASH_VALUE and tt.ADDRESS = t1.SQL_ADDRESS and t1.STATUS = 'ACTIVE' orderby tt.BUFFER_GETS desc (2):根据客户端程序发出的SQL来定位需要跟踪的session select s.sid sid, s.SERIAL# "serial#", https://www.doczj.com/doc/138289257.html,ername, s.machine, s.program, s.server, s.LOGON_TIME from v$session s 1.1.2 通过Oracle提供的SQL TRACE进行SQL跟踪 (1):跟踪前设定相应参数 1.查询得到需要跟踪的session 2.打开时间开关

Show parameter timed_statistics alter session set timed_statistics=true; execsys.dbms_system.set_bool_param_in_session(sid => 8,serial# => 3,parnam => 'timed_statistics',bval => true); 3.设置跟踪文件存放位置 Show parameter user_dump_dest alter system set user_dump_dest='c:\temp'; (2):启动跟踪功能并让系统运行一段时间 alter session set sql_trace=true; execsys.dbms_system.set_sql_trace_in_session(8, 3, true); (3):关闭跟踪功能 alter session set sql_trace=false; execsys.dbms_system.set_sql_trace_in_session(8, 3, false); (4):格式化跟踪数据文件,并分析跟踪结果文件 tkprof dsdb2_ora_18468.trc dsdb2_trace.txt EXPLAIN=SCOTT/TIGER tkprof各参数含义: ' traced_file ' 指定输入文件,即oracle产生的trace文件 'formatted_file'指定输出文件,即我们想得到的易于理解的格式化文件 'EXPLAIN' 利用哪个用户对trace文件中的sql进行分析得到该sql语句的执行计划1.2查看分析执行计划 1.2.1查看执行计划 (1):Sqlplus中可按F5查看执行计划 (2):使用执行计划表进行查看 使用语句将SQL语句的执行计划装入plan_table表,然后进行分析查看explainplansetstatement_id = 'dd'into plan_table for select t.type_name,t.source_value,t.standard_value from ODS_STD_COMP t,ODS_STD_COMP_BAK t1 where t.system_id = t1.system_id and t.type = t1.type and t.source_value = t1.source_value (3):示例演示 1.让ORALCE自动选择最优的执行计划,不人为干预 explainplansetstatement_id = 'dd'into plan_table for select t.type_name,t.source_value,t.standard_value from ODS_STD_COMP t,ODS_STD_COMP_BAK t1 where t.system_id = t1.system_id and t.type = t1.type and t.source_value = t1.source_value

( O管理)ORACLESL性能优化(内部培训资料)

(O管理)ORACLESL性能优化(内部培训资料)

ORACLESQL性能优化系列(一) 1.选用适合的ORACLE优化器 ORACLE的优化器共有3种: a.RULE(基于规则) b.COST(基于成本) c.CHOOSE(选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS.你当然也在SQL句级或是会话(session)级对其进行覆盖. 为了使用基于成本的优化器(CBO,Cost-BasedOptimizer),你必须经常运行analyze命令,以增加数据库中的对象统计信息(objectstatistics)的准确性. 如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关.如果table已经被analyze过,优化器模式将自动成为CBO,反之,数据库将采用RULE形式的优化器. 在缺省情况下,ORACLE采用CHOOSE优化器,为了避免那些不必要的全表扫描(fulltablescan),你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器.

2.访问Table的方式 ORACLE采用两种访问表中记录的方式: a.全表扫描 全表扫描就是顺序地访问表中每条记录.ORACLE采用一次读入多个数据块(databaseblock)的方式优化全表扫描. b.通过ROWID访问表 你可以采用基于ROWID的访问方式情况,提高访问表的效率,,ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系.通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高. 3.共享SQL语句 为了不重复解析相同的SQL语句,在第一次解析之后,ORACLE将SQL语句存放在内存中.这块位于系统全局区域SGA(systemglobalarea)的共享池(sharedbufferpool)中的内存可以被所有的数据库用户共享.因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同,ORACLE就能很快获得已经被解析的语句以及最好的执行路

网络优化常用方法及相关软件和参数

网络优化常用方法及相关软件和参数 网络优化的工作流程具体包括五个方面:系统信息收集,数据分析及处理,制定网络优化方案,系统调整,调整网络优化方案。 常用的优化方法有话务统计分析法、信令跟踪分析法及路测分析法。在实际优化中,常将三种方法结合起来用,以分析OMC_R话务统计报告,并辅以信令仪表K1205进行A接口或Abis接口跟踪分析和路测仪表Agilent 64XX进行路测分析,是进行网络优化常用的有效手段。 1话统计分析法 主要是用ALCATEL研发地OMC_RPROJ3.x.x工作平台话务统计工具来收集的无线话务报告数据和在OMC_R上收集的系统硬件告警信息和收集的参数分类处理,便于分析网络。 1.1OMC_RPROJ3.XX工作平台介绍 通过OMC_RPRJ3.X.X工作平台导出的话务统计报告中的各项指标(呼叫成功率、切换成功率、每时隙话务量、无线信道可用率、话音信道阻塞率和信令信道的可用率、掉话次数、干扰、掉话率及阻塞率等),可以了解到无线基站中存在的坏小区、话务分布及变化情况,从而发现异常,并结合信令跟踪及路测手段,分析出网络逻辑或物理参数设置的不合理、网络结构的不合理、话务量不均、频率干扰及硬件故障等情况。 OMC_RPRJ3.X.X工作平台导出Excel后的话务统计报告中的各项指标如以下各图:

180报告表 180 counter是整个网络小区间的切换数据。 CI_S-原小区CI LAC_S-原小区LAC CI_T-目标小区CI LAC_T-目标小区LAC C400-切换请求次数 C401-切换应答次数 C402-切换成功次数 C402_C400-切换成功率 180counter统计中可检查出切换异常的小区,结合信令和OMC_R上的观察,查找出问题的原因(参数,硬件,时钟是否准确等)。

系统参数设置-Oracle性能优化(精)

一、SGA 1、Shared pool tunning Shared pool的优化应该放在优先考虑,因为一个cache miss在shared pool中发生比在data buffer中发生导致的成本更高,由于dictionary数据一般比library cache中的数据在内存中保存的时间长,所以关键是library cache的优化。 Gets:(parse)在namespace中查找对象的次数; Pins:(execution)在namespace中读取或执行对象的次数; Reloads:(reparse在执行阶段library cache misses的次数,导致sql需要重新解析。 1)检查v$librarycache中sql area的gethitratio是否超过90%,如果未超过90%,应该检查应用代码,提高应用代码的效率。Select gethitratio from v$librarycache where namespace=’sql area’; 2 v$librarycache中reloads/pins的比率应该小于1%,如果大于1%,应该增加参数shared_pool_size的值。Select sum(pins “executions”,sum(reloads “cache misses”,sum(reloads/sum(pins from v$librarycache; reloads/pins>1%有两种可能,一种是library cache空间不足,一种是sql中引用的对象不合法。 3)shared pool reserved size一般是shared pool size的10%,不能超过50%。 V$shared_pool_reserved中的request misses=0或没有持续增长,或者free_memory 大于shared pool reserved size的50%,表明shared pool reserved size过大,可以压缩。 4)将大的匿名pl/sql代码块转换成小的匿名pl/sql代码块调用存储过程。 5)从9i开始,可以将execution plan与sql语句一起保存在library cache中,方便进行性能诊断。从v$sql_plan中可以看到execution plans。 6)保留大的对象在shared pool中。大的对象是造成内存碎片的主要原因,为了腾出空间许多小对象需要移出内存,从而影响了用户的性能。因此需要将一些常用的大的对象保留在shared pool中,下列对象需要保留在shared pool中: a. 经常使用的存储过程; b. 经常操作的表上的已编译的触发器 c. Sequence,因为Sequence移出shared pool后可能产生号码丢失。查找没有保存在library cache中的大对象: Select * from v$db_object_cache where sharable_mem>10000 and type in ('PACKAGE','PROCEDURE','FUNCTION','PACKAGE BODY' and kept='NO'; 将这些对象保存在library cache中:Execute dbms_shared_pool.keep(‘package_name’; 对应脚本:dbmspool.sql 7查找是否存在过大的匿名pl/sql代码块。两种解决方案:A.转换成小的匿名块调用存储过程 B.将其保留在shared pool中查找是否存在过

Oracle SQL性能优化方法研究

Oracle SQL性能优化方法探讨 Oracle性能优化方法(SQL篇) (1) 1综述 (2) 2表分区的应用 (2) 3访问Table的方式 (3) 4共享SQL语句 (3) 5选择最有效率的表名顺序 (5) 6WHERE子句中的连接顺序. (6) 7SELECT子句中幸免使用’*’ (6) 8减少访问数据库的次数 (6) 9使用DECODE函数来减少处理时刻 (7) 10整合简单,无关联的数据库访问 (8) 11删除重复记录 (8) 12用TRUNCATE替代DELETE (9) 13尽量多使用COMMIT (9) 14计算记录条数 (9) 15用Where子句替换HAVING子句 (9) 16减少对表的查询 (10) 17通过内部函数提高SQL效率 (11)

18使用表的不名(Alias) (12) 19用EXISTS替代IN (12) 20用NOT EXISTS替代NOT IN (13) 21识不低效执行的SQL语句 (13) 22使用TKPROF 工具来查询SQL性能状态 (14) 23用EXPLAIN PLAN 分析SQL语句 (14) 24实时批量的处理 (16)

1综述 ORACLE数据库的性能调整是个重要,却又有难度的话题,如何有效地进行调整,需要通过反反复复的过程。在数据库建立时,就能依照顾用的需要合理设计分配表空间以及存储参数、内存使用初始化参数,对以后的数据库性能有专门大的益处,建立好后,又需要在应用中不断进行应用程序的优化和调整,这需要在大量的实践工作中不断地积存经验,从而更好地进行数据库的调优。 数据库性能调优的方法 ●调整内存 ●调整I/O ●调整资源的争用问题 ●调整操作系统参数 ●调整数据库的设计 ●调整应用程序 本文针对应用程序的调整,来讲明对数据库性能如何进行优化。 2表分区的应用 关于海量数据的表,能够考虑建立分区以提高操作效率。建

网络优化技术及其应用

网络优化技术及其应用 摘要:网络优化技术是指通过各种硬件或软件技术使网络性能达到我们需要的最佳平衡点,硬件方面指在合理分析系统需要后通过对设备、参数的调整等手段对已有网络进行优化工作,最大限度地发挥网络的能力,提高网络的平均服务质量,在性能和价格方面作出最优解,软件方面指通过对软件参数的设置以及在软件承受范围内达到最高性能负载。 关键字:概述工具平台步骤方法 一、网络优化技术概述 (一)网络优化技术产生的背景 随着移动网络的迅猛发展,网络的服务质量问题已经越来越受到人们的关注。频率资源的紧缺、昂贵的设备投入、日益增加的用户数都对网络的发展造成了阻碍,同时更加广泛的移动性要求以及人们对服务质量、业务的更高要求又对迫使网络必须不断发展。如何利用现有的网络设备、资源和容量,最大限度地提高网络的平均服务质量,提高效益;如何使得网络在不断发展的过程中,能够保持网络的服务质量不下降,这就引出了一种技术——“网络优化技术”。 (二)网络优化技术的目的 网络优化技术主要的目的有以下几个方面: 1、提高平均的网络服务质量 主要包括高质量的语音和其他业务服务,足够的覆盖和接通率等。 2、尽可能地减少运营成本 主要包括提高设备的利用率,增加网络容量,减少设备和线路的投资等。 (三) 做好网络优化技术的前提条件 网络优化技术是一件复杂的系统工程。它的涉及面广、时间长、对专业知识的要求极高,要把网络优化工作做好,需要大量的人力、物力、财力的投入。 主要包括: 1、经验丰富的优化工程师:长期、专一的网优技术人员,具备分析问题、解决问题的思路和能力。同时这些人员应具备有线、无线领域的专业知识;既要熟悉GSM规范,又要对设备的性能、参数、算法等非常熟悉;另外还需要有一定的工程经验。 2、齐备的工具:路测设备、信令仪表、网络优化工作平台、模拟发信机等。 3、完整而可靠的原始数据:基站数据、OMC性能数据、路测数据、信令数据以及完整的网络优化档案等。 4、详尽的地理信息数据:完整的地理信息数据可以使得优化工作更准确。

4G移动网络优化案例分析

题目:4G移动网络优化案例分析 摘要:科学技术的发展推动了人类社会的发展,回顾历史每次人类社会的飞跃进步都是由科学技术的发展引发的,其中通信技术的发展更是为社会的整体发展作出了无数的贡献.在中国我们的老百姓享受到了移动通信技术从模拟移动通信到数字移动通信4G技术所带来的便利和对生活的改变.对于通信网络运营商而言,如何为客户提供优质的网络服务始终都是主要的运营方向,它是一切运营的基础,是电信运营商运营与发展的生命线.要把网络运营做强做精,除了基本的解决网络覆盖问题以外关键是要做好网络优化。 关键词:移动通信4G,网络运营,网络优化 毕业论文外文摘要 Title: 4G Mobile Network Optimization Case Study Abstract:Development of science and technology to promote the development of human society, recalling the history of the progress of human society, every leap is triggered by the development of science and technology, in which the development of communication technology, but also for the ov erall development of society has made numerous contributions in China our people enjoy the mobile communication technology from analog to digital mobile communication 4G mobile communication tec hnology brings convenience and change of life. for the communications network operators, how to pr ovide quality customer service has always been the main network operational direction, which is the f oundation of all operations, is the lifeblood of Telecom Operator and development. network operators should do fine and stronger, in addition to the basic problem solving network coverage is essential t o do network optimization. Key words: 4G mobile communications, Network operators, Network Optimization 目录 1 引言 (4) 2 通信的发展史 (5) 3 4G移动网络优化的特征 (6) 3.1 4G的特性7 3.2 4G网络的基本特征决定了他的网络优化特征7 3.3 4G移动网络优化特征7

网络优化工程

G LO B A L SY ST EM FO R M O BIL E C O M M U N IC A T IO N S R 网络优化技术文件 2000年11月8日

目录 1. 概述 (3) 1.1 本文的目的和内容 (3) 1.2 限制说明 (3) 1.3 版本说明 (3) 2. 网络优化工程概述 (4) 2.1 网络优化工程的目的 (4) 2.2 做好网络优化工作的前提条件 (4) 2.3 网络优化工作的主要内容 (5) 3. 网络优化的工具 (6) 3.1 路测系统 (6) 3.2 网络优化工作平台 (7) 3.2.1 网络仿真平台 (7) 3.2.2 网络分析平台 (7) 3.3 信令协议分析系统 (8) 3.4 其他 (8) 3.4.1 基站测试仪 (8) 3.4.2 频谱分析仪 (8) 3.4.3 模拟发信机 (9) 4. 网络优化工作步骤 (10) 4.1 网络优化步骤 (10) 4.2 网络日常优化工作流程 (10) 5. 网络优化中的常见问题及解决方法 (12) 5.1 频率问题 (12) 5.2 覆盖问题 (13) 5.3 切换问题 (14) 5.4 其他 (16) 第2页共17页

1.概述 1.1本文的目的和内容 本文对网络优化工作中的一些方面进行了描述,主要包括网络优化工作的工具、网络优化工作的步骤、一些常用的性能指标和一些常见问题的解决方案。 本文是对网络优化人员的培训教材。 1.2限制说明 本文属上海XX移动通信设备有限公司所有,未经允许不得擅自复印、修改、传播。 1.3版本说明 本文的有效性由本文的版本号确定,在存在最新版本的情况下,所有以前的版本均为无效,即本文的最新版本是本文的唯一有效版本。所有使用本文的各方在使用本文时应选择本文的最新版本。 本文的版本号由一个字母和三个数字组成,按如下的形式组成: 版本号:Vx.y.z。 其中: ?V表示版本(Versi on)。 ?x是一个大于0的整数,由1开始编号,当版本中的内容与原有内容有较大的修改或补充时,X递增1; ?y是大与等于0的整数,在初始版本中或每次x递增时y设为0,当版本中的内容与原有内容在局部发生变动或修改时y递增1; ?z是大与等于0的整数,在初始版本中以及每次x或y递增时z设为0,当版本中的内容与原有内容只在语法或表达形式上发生变动时z递增1。 第3页共17页

大型网站平台优化方案

1. 平台优化方案 大型网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。 上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解决思路具备瓶颈,没有很好的扩展性,下面我从低成本、高性能和高扩张性的角度来说说我的一些经验。 1.1. HTML静态化 由于效率最高、消耗最小的就是纯静态化的html页面,所以尽可能使网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,无法全部手动去挨个实现,于是出现了常见的信息发布系统CMS,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。 除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,如Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。 同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储在数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。

MS_SQL_Server_数据库性能优化方法总结

1.列出数据库服务器、Web服务器的基本的硬件配置,如CPU、内存等。 2.检查数据库服务器是否真正启用了AWE内存。 (1) 启用AWE:数据库服务器检查C:\boot.ini文件,需要配置"/PAE"(*重启电脑才能生效),如下: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /PAE (2) 开启sql server 服务用户的,内存中锁定页面权限 (*重启电脑才能生效)在“服务管理”中查看 SQL SERVER 服务登录账户,默认是本地系统帐户(System)。然后在运行 gpedit.msc ,选择计算机配置->windows 设置->安全设置->本地策略->用户权限分配->内存中锁定页面。添加SQL SERVER服务的登录用户到里面去。 (3)启用数据库AWE内存,以服务器8G内存为例,一般设置如下,最小2G,最大6G(重启SQL SERVER服务即可): (4)跟踪数据库性能“Total Server Memory ”的使用情况,看看数据库真正使 用的内存,越接近为数据库分配的最大内存越好。 或使用如下语句,查询数据库的内存使用情况: use master go select * from sysperfinfo where counter_name like '%Total Server Memory(KB)%' go 3.Web服务器监控项:

优化数据库性能

查询速度慢如何解决 ------主要针对SQL 2005 为例 引起查询或更新的执行时间超过预期时间的原因有多种。查询运行慢,可能是由与运行 SQL Server 的网络或计算机相关的性能问题引起的,也可能是由物理数据库设计问题引起的。 查询和更新运行慢的最常见原因有: ?网络通讯速度慢。 ?服务器的内存不足,或者没有足够的内存供 SQL Server 使用。 ?索引列上缺少有用的统计信息。 ?索引列上的统计信息过期。 ?缺少有用的索引。 ?缺少有用的索引视图。 ?缺少有用的数据条带化。 ?缺少有用的分区。 1、用于对运行慢的查询进行故障排除的清单 当查询或更新花费的时间比预期时间长时,请考虑以下问题,找到可解答前一节中列出的查询运行慢的原因: ①. 是与组件而不是与查询相关的性能问题吗?例如,是网络性能低的问题吗?有其他可能引起或造成性能降低的组件吗? Windows 系统监视器可用于监视与 SQL Server 和非 SQL Server 相关的组件的性能。有关详细信息,请参阅监视资源使用情况(系统监视器)。 ②. 如果性能问题与查询相关,那么涉及到的是哪个或哪组查询? 首先使用 SQL Server Profiler来帮助找出运行慢的查询。有关详细信息,请参阅使用 SQL Server Profiler。 在找出运行慢的查询后,可以使用 SET 语句启用 SHOWPLAN、STATISTICS IO、STATISTICS TIME 和 STATISTICS PROFILE 选项,进一步分析查询的性能,相关描述如下: ?SET SHOWPLAN_XML ON 描述 SQL Server 查询优化器选择用来检索完善的 XML 文档数据的方法。有关详细信息,请参阅 SET SHOWPLAN_XML (Transact-SQL)。在 Microsoft SQL Server 2005 中,建议使用这种方法。此 SET 选项生成的信息比 SHOWPLAN_ALL 和 SHOWPLAN_TEXT SET 选项生成的信息详细。 ?SET SHOWPLAN_ALL ON 描述 SQL Server 查询优化器选择的数据检索方法。有关详细信息,请参阅 SET SHOWPLAN_ALL (Transact-SQL)。此 SET 选项生成的信息比 SHOWPLAN_TEXT SET 选项生成的信息详细。 ?SET SHOWPLAN_TEXT ON 返回每条 Transact-SQL 语句的执行信息,但不执行它们。有关详细信息,请参阅SET SHOWPLAN_TEXT (Transact-SQL)。

相关主题
相关文档 最新文档