文档库 最新最全的文档下载
当前位置:文档库 › Oracle常用的性能视图

Oracle常用的性能视图

Oracle常用的性能视图
Oracle常用的性能视图

1.性能视图

性能视图是Oracle中一些记录数据库性能方面的视图,通过查看这些视图,获得数据库当前或历史上某个时间的性能数据。它比SQL_TRACE,AWR报告获取数据更及时,便捷。

1.1 V$SQL

V$SQL 视图是一个DBA 使用频率非常高的动态视图,它通常和V$SESSION 一起使用来获得当前会话的一些SQL执行情况。可以通过该视图查看正在执行的SQL语句及这条SQL运行了多长时间或者它正在等待什么样的事件。

1.1.1 用V$SQL 查看SQL 内容

为了获取用户连接到数据库中的信息,需要先从V$SESSION视图确定用户的SID号,然后用v$session 和 v$sql查看相关信息。

SELECT a.sql_text,

b.status,

https://www.wendangku.net/doc/8a8031422.html,st_call_et,

b.event

FROM v$sql a, v$session b

WHERE a.sql_id = b.sql_id AND b.sid = 123;

1.1.2 用V$SQL 查看SQL执行和等待时间

对于已经执行完毕的会话,可以在V$SQL视图中找到它的执行时间和消耗的CPU时间,这些信息对我们分析一些性能上存在问题的SQL有用处。比如对比SQL 消耗的CPU 和执行时间,就可以大致知道SQL语句执行中是否有长时间的等待事件:

SELECT sql_text,

cpu_time / (1000 * 1000) t_cpu,

elapsed_time / (1000 * 1000)t_elap,

(cpu_time / elapsed_time / (1000 * 1000)) * 100 pct

FROM v$sql

WHEREsql_id='209q0m326kdzy';

返回如上结果,如果说T_ELAP 时间比较多,而CPU时间比较少,说明这条语句在执行过程中基本处于等待状态。

1.2 V$SQL_SHARED_CURSOR

这个视图存放了SQL在执行过程中游标共享的信息,它能帮助我们分析看起来一样的SQL,为什么没有共享的原因。

SQL> show parameter cursor_sharing;

SQL> select parsing_user_idpuid,parsing_schema_idpsid,sql_text,sql_id,child_address from v$sql where sql_text like 'insert into t%';

如果这里有多条SQL_TEXT,SQL_ID相同的,就说明SQL没有重用。我们可以用如下SQL来确定是哪里不一致造成:

查看不能重用原因:

SQL> select * from v$sql_shared_cursor where sql_id='asnhcg241fr2y';

如果这里有Y,就是导致不能重用的原因,这些字母和V$SQL_SHARED_CURSOR 每个字段对应。

1.3 V$SESSION

我们可以从该视图查看用户会话的信息。可以使用machine或者module找到我们的用户。Macine 是客户端机器的名称,userName是会话连接时提供的用户名,Program是客户端执行程序的名称,module是Oracle 的存储过程

DBMS_ALLPLCATION_INFO.SET_MODULE给出的执行程序的名称。

这种直接查询v$session视图的方法只适合哪种两层结构的C-S架构,这种是客户端直接连接到数据库。但是现在基本都是三层架构。通过中间件如weblogic来连接数据库。这种情况下就需要在中间件服务上进行跟踪,比如获得用户道和中间件的连接信息,然后根据中间件的信息或者日志来确定用户的最终信息。

V$SESSION 常用来查看用户当前的状态,当前执行的SQL语句,SQL语句执行时间,以及等待事件等。

V$SESSION 里面有个字段last_call_et(单位:秒),表示执行时间,这里有两种状态:

1. Session 处于active 状态,该字段表示session变成active到现在的时间;

2. Session处于inactive状态,此时表示session 变成inactive到现在的时间。

示例1

SQL> select status,last_call_et,event from v$session where sid=124;

注意:

在RAC 状态下,会话需要来自不同的实例,所以在RAC 环境下需要使用

GV$SESSION视图,因为这个视图含有INST_ID 字段,通过这个字段可以区别实例。1.4 V$SESSTAT

这个视图记录了某个session从运行以来各种资源统计数据,通过关联表v$statname 可以查询出某个session的资源消耗情况,如:

SELECT a.sid, https://www.wendangku.net/doc/8a8031422.html,, a.VALUE

FROM v$sesstat a, v$statname b

WHERE a.sid = 124

AND a.statistic# = b.statistic#

AND https://www.wendangku.net/doc/8a8031422.html, IN ('consistent gets',

'physical reads',

'parse count (total)',

'parse count (hard)');

1.5 V$SESSION_WAIT

V$SESSION_WAIT 记录了会话的一些等待信息,这些等待信息在v$session视图里可以可以查到。

SELECT event,

p1,

p1text,

p2,

p2text,

p3,

p3text,

wait_time,

seconds_in_wait,

state

FROM v$session_wait

WHEREsid = 124;

2. 性能参数

性能参数指它的设置会影响数据库性能问题的初始化参数。这些参数比较多,具体参考ORACLE 官网文档。

2.1 CURSOR_SHARING

该参数决定在什么情况下可以使用共享游标,即SQL重用。它有三个值: EXACT, SIMILAR 和FORCE.

默认情况下,oracle 将该参数值是EXACT. 意思是SQL必须绝对一样才能共享游标,否则将作为新的SQL语句处理。

这种设置的意义在于,从Oracle层面来看,通过精确地匹配每个SQL语句,就可以保证只有语句完全相同的SQL,才可以在共享池中被重用,否则将作为新的SQL语句对待。而把构造完全一样的SQL语句的任务留给用应用来完成,即由应用来通过变量绑定的方式达到SQL重用,而不是依赖ORACLE来实现,这样的好处是可以大大减少ORACLE花费在SQL分析上的资源消耗(cursor_sharing=similar),及避免Oracle不加判断地绑定变量导致执行计划选择的错误(cursor_sharing=force).

2.2 DB_FILE_MUL TIBLOCK_READ_COUNT

Oracle 在做一次连续的数据库扫描时,一次I/O 允许读取的最大数据块数,但有一个限制,就是每次I/O的大小不能超过Oracle 运行的操作系统的最大I/O值(通常是1M)。

假设一张表有10240KB大小,数据块的大小为8kb,设置

DB_FILE_MULTIBLOCK_READ_COUNT=32,那么我们对这张表做全表扫描的次数为:

10240/(32*8)=40次,即Oracle 对这张表做扫描需要花费40次I/O。但是实际上,Oracle 花费的I/O次数可能大于这个值,可可能小于这个值。因为Oracle在读多个数据库时,当内存中已经有了某个数据块时,Oracle 就不再从磁盘中读取它。

对于OLTP数据库来说,每次用户读取的记录数非常少,这个值可以考虑设置的小一点;对于OLAP系统,因为查询的量非常大,所以可以考虑设置大一些。

注意:多数据块读取操作只发生在一下两种情况:

这个参数才10g R2版本后,Oracle不建议修改它的默认值。当设置这个值为默认值时,Oracle 会通过收集SQL的I/O 情况,来动态设置这个参数的值,如果手工修改了它的默认值,Oracle 将确定使用这个新值。

oracle系统表和视图说明

1.视图的概述 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器。(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束) 2.视图的存储 与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。由于视图基于数据库中的其他对象,因此一个视图只需要占用数据字典中保存其定义的空间,而无需额外的存储空间。 3.视图的作用 用户可以通过视图以不同形式来显示基表中的数据,视图的强大之处在于它能够根据不同用户的需要来对基表中的数据进行整理。视图常见的用途如下: 通过视图可以设定允许用户访问的列和数据行,从而为表提供了额外的安全控制 隐藏数据复杂性 视图中可以使用连接(join),用多个表中相关的列构成一个新的数据集。此视图就对用户隐藏了数据来源于多个表的事实。 简化用户的SQL 语句 用户使用视图就可从多个表中查询信息,而无需了解这些表是如何连接的。 以不同的角度来显示基表中的数据 视图的列名可以被任意改变,而不会影响此视图的基表 使应用程序不会受基表定义改变的影响 在一个视图的定义中查询了一个包含4 个数据列的基表中的3 列。当基表中添加了新的列后,由于视图的定义并没有被影响,因此使用此视图的应用程序也不会被影响。 保存复杂查询 一个查询可能会对表数据进行复杂的计算。用户将这个查询保存为视图之后,每次进行类似计算只需查询此视图即可。

12:视图

六、TOP-N 八、数据字典与动态性能视图 第一节什么是视图 一、创建视图: 创建视图的主法是:CREATE [OR REPLACE] VIEW 视图名AS 查询语句。例如,如下语句就创建了一个视图: sid=41 pid=17> create view ydsp_v1 as select nvl(spbh,'待定') spbh,sum(nvl(jg,0)) sum from ydsp group by spbh; 视图已创建。 视图的名字是YDSP_V1。 哪么,它有什么用呢?很简单,如果以后你再想查看SPBH(商品编号)对JG(价格)列进行分组求和的结果,不必再使用“select nvl(spbh,'待定') spbh,sum(nvl(jg,0)) sum from ydsp group by spbh; ”,直接SELECT 视图即可: sid=41 pid=17> select * from ydsp_v1; SPBH SUM ---- ---------- 101 43500 待定0 102 6000 201 9800 202 9800 这样比你每次输入分组查询简单一些。我们可以将常用的比较复杂的查询操作像上面这样,建立为视图。这样每次查询视图就可看到结果,比输入复杂查询语句更省事。 创建视图命令中的[OR REPLACE]的意义,REPLACE有替换的意思。它的主要作用是修改视图的定义,也就是修改视图内的SQL语句。比如说上面的YDSP_V2,我想为YDSP_V2中增加一个COUNT(*),命令如下:create or replace view ydsp_v1 as select nvl(spbh,'待定') spbh,sum(nvl(jg,0)),count(*) CT sum from ydsp group by spbh; 这个命令非常简单,我不再试了。这条命令的意思是把YDSP_V1再创建一次。用新的YDSP_V1替代老的YDSP_V1,也就是重建视图。视图在创建后,它的结构、定义等信息不能修改,要想改变视图的定义信息,只能使用CREATE OR REPLACE,用新的定义重建视图。 在创建视图时,对这种使用各种函数,或运算表达式的列,一定要起别名,如没有别名视图创建就会失败,例如: sid=41 pid=17> create view ydsp_v1 as select nvl(spbh,'待定') ,sum(nvl(jg,0)) SUM from ydsp group by spbh; create view ydsp_v1 as select nvl(spbh,'待定') ,sum(nvl(jg,0)) SUM from ydsp group by spbh * 第 1 行出现错误: ORA-00998: 必须使用列别名命名此表达式 我把NVL()函数后的别名去掉了,创建失败。ORACLE报出的错误,就是说“我在这里缺少列的别名”。 为什么一定要为列起别名,因为一个创建好的视图,就像一个表一样,就像我们刚开始所举的例子,它有两个列:SPBH和SUM。用户可以通过select spbh,sum from ydsp_v1来显示这两个列中的数据。像nvl(spbh,'待定')这样的表达式,如果你没有指定别名的话,ORACLE将无法确定在视图中,它的列名是什么。因此,在创建视图时,对于这种复杂的表达式,一定要为它起别名。 当使用SELECT查询一个视图时,和查询表是一某一样的,我们就可以把视图当表一样去查询。SELECT 语句中,所有适用于表特性,都同样适用性视图。比如我们可以增长条件: sid=41 pid=17> select * from ydsp_v1 where spbh<>'待定'; SPBH SUM ---- ---------- 101 43500

ORACLE优化总结和注意事项

ORACLE优化总结和注意事项 本文档中对优化方法进行详述,并对在优化过程中发现的一些问题进行总结。列出ORACLE的一些注意事项 注意事项: 1.安装的过程中,请务必进行正确安装。 2.当安装过程中出现错误的时候,最好清除原有遗留信息,进行重装,否则在数据库运行 的过程中可能会出现各种诡异的问题。 3.当数据库安装的过程中如果有警告信息,请记录下来,存档,方便排查数据库问题 4.安装的过程中请选择OLTP的数据模板Transaction Processing 5.安装过程中文件的创建

Controlfile、Datafiles、Redo Log Groups如果条件允许,最好分别放于不同的磁盘上。其中Controlfile和Redo Log Groups要尽量保证放在不同的磁盘上 6.其中Redo Log Groups重做日志组最好建5组以上,每个文件大小在1G以上,最大不超 过3G,避免出现进行check_point的时候造成buffer wait 导致数据库宕机 7.检查/etc/hosts文件 配置最后一行信息,将当前的主机名和ip配对起来,避免应用服务连接数据库导致的性能损耗 8.安装完成后,请启动数据库确保数据库基本安装成功 步骤: sqlplus /nolog connect /as sysdba startup//启动数据库实例 exit//退出sqlplus lsnrctl start//启动监听

emctl start dbconsole 上述步骤如果执行完,没有报错,则说明数据库基本安装正确,并可正常运行。如果执行上述操作的时候出现了问题,则说明数据库安装的过程中出现了某些问题,即使数据库实例当前可以启动连接,但是在以后稳定服务的过程中也是有可能会出现一些数据库问题的。 配置OCI连接 因为当前应用服务采用OCI连接的方式,因此在运行应用服务之前要配置OCI的连接条件 1、需求软件: 如果应用服务是跟ORACLE数据库安装在一台机器上,则不需要额外软件,直接进入第2步即可 如果应用服务是跟ORACLE数据库分开部署,则需要在部署应用服务的机器上安装一个客户端(精简客户端即可大小几M)需要从官方网站下载三个文件instantclient-basic-linux-x86-64-10.2.0.3-20070103.zip instantclient-sqlplus-linux-x86-64-10.2.0.3-20070103.zip instantclient-jdbc-linux-x86-64-10.2.0.3-20070103.zip 解压到同一个目录中,同时在该目录下新建一个文件tnsnames.ora文件,文件中添加以下内容 # Generated by Oracle configuration tools. HMS = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.15.61)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = hms) ) )

Oracle 11gR2 概念 第6章 数据字典和动态性能视图

Previous Next View PDF 6 Data Dictionary and Dynamic Performance Views Previous Next View PDF 第6章数据字典和动态性能视图 This chapter describes the central set of read-only reference tables and views of each Oracle database, known collectively as the data dictionary. The chapter also describes the dynamic performance views, which are special views that are continuously updated while a database is open and in use. 本章介绍了每个 Oracle 数据库都具有的只读参考表和视图中最重要的部分,统称为数据字典。本章还介绍了动态性能视图,它们是一些会在数据库处于打开状态时不断更新的特殊视图。 This chapter contains the following sections: 本章包含以下各节: ?Overview of the Data Dictionary o Contents of the Data Dictionary o Storage of the Data Dictionary o How Oracle Database Uses the Data Dictionary ?Overview of the Dynamic Performance Views o Contents of the Dynamic Performance Views o Storage of the Dynamic Performance Views ?Database Object Metadata ?数据字典概述 o数据字典的内容 o数据字典存储 o Oracle数据库如何使用数据字典?动态性能视图概述 o动态性能视图的内容 o动态性能视图的存储 ?数据库对象元数据 Overview of the Data Dictionary 数据字典概述 An important part of an Oracle database is its data dictionary, which is a read-only set of tables that provides administrative metadata about the database. A data dictionary contains information such as the following: Oracle 数据库的一个重要部分是它的数据字典,它是一组提供有关数据库管理元数据的只读表。数据字典包含如下信息: ?The definitions of every schema object in the database, including default values for columns and integrity constraint information ?在数据库中每个模式对象的定义,包括列的默认值和完整性约束信息 ?The amount of space allocated for and currently used by the schema objects ?分配给模式对象的空间量及当前已使用量 ?The names of Oracle Database users, privileges and roles granted ?Oracle数据库用户的名称、授予用户的权限和角色、和与用户相关

Oracle创建视图

Oracle创建视图 在本练习中,将在HR模式中练习如何创建视图,查询视图的定义,并对视图进行更新。 (1)创建一个视图EMPLOYEES_IT,该视图是基于HR模式中的EMPLOYEES表,并且该视图只包括那些部门为IT的员工信息。在创建视图时使用WITH CHECK OPTION,防止更新视图时,输入非IT部门的员工信息。 create or replace view employees_it as select * from employees where department_id =( select department_id from departments where departments.department_name='IT') with check option; (2)创建一个联接视图EMP_DEPT,它包含EMPLOYEES表中的列和DEPARTMENTS 表中的DNAME列。 create or replace view emp_dept as select t1.employee_id,t1.first_name,https://www.wendangku.net/doc/8a8031422.html,st_name,t1.email, t1.phone_number,t1.hire_date,t1.job_id,t1.salary,t2.department_name from employees t1,departments t2 where t1.department_id=t2.department_id with check option; (3)Oracle针对创建的视图,只在数据字典中存储其定义。输入并执行如下的语句查看创建的视图定义: select text from user_views where view_name=UPPER('emp_dept'); (4)查看视图各个列是否允许更新。 col owner format a20 col table_name format a20 col column_name format a20 select * from user_updatable_columns where table_name=UPPER('emp_dept');

Oracle EBS常用表和视图

fnd_user 系统用户表 fnd_application 应用信息表 FND_PROFILE_OPTIONS_VL 系统配置文件 fnd_menus 菜单 fnd_menu_entries_tl FND_NEW_MESSAGES 消息表 FND_FORM 表单表 FND_CONCURRENT_PROGRAMS_VL 并发程序视图 FND_CONCURRENT_PROGRAMS_TL FND_CONCURRENT_PROGRAMS FND_DESCR_FLEX_COL_USAGE_VL FND_DESCR_FLEX_COL_USAGE_TL FND_DESCR_FLEX_COLUMN_USAGES FND_EXECUTABLES_FORM_V 可执行并发程序视图FND_EXECUTABLES_TL FND_EXECUTABLES FND_DESCRIPTIVE_FLEXS FND_CONC_REQ_SUMMARY_V 并发请求视图FND_CONCURRENT_REQUESTS FND_RESPONSIBILITY 职责表

FND_RESPONSIBILITY_VL 职责FND_USER_RESP_GROUPS 用户职责 fnd_flex_value_sets 值集表 FND_FLEX_VALUES FND_IREP_ALL_INTERFACES 接口表 FND_IREP_CLASSES Fnd_Irep_Classes_Tl fnd_territories_vl 国家视图 fnd_log_messages 日志表 fnd_form_functions 功能 FND_DOCUMENT_SEQUENCES 单据序列 FND_DOC_SEQUENCE_ASSIGNMENTS 序列分配 fnd_id_flexs 关键弹性域定义表 FND_ID_FLEX_STRUCTURES 弹性域结构表 FND_ID_FLEX_SEGMENTS 弹性域段表 fnd_descriptive_flexs 描述性弹性域属性表 FND_DESCR_FLEX_CONTEXTS 弹性域列类别表 FND_DESCR_FLEX_COLUMN_USAGES 弹性域列类别属性表FND_FLEX_VALUE_SETS 值集表 FND_FLEX_VALUES 值表 Fnd_Flex_Values_Tl 值描述表

ORACLE常用SQL语句大全

ORACLE常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not nul l],..) 根据已有的表创建新表: A:select * into table_new from table_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle> 5、说明:删除表 drop table tablename

6、说明:增加一个列,删除一个列 A:alter table tabname add column col type B:alter table tabname drop column colname 注:DB2DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) 8、创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、创建视图:create view viewname as select statement 删除视图:drop view viewname 10、几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、几个高级查询运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B:EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C:INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、使用外连接

ORACLE 性能优化

ORACLE 数据库性能优化 参考书目: 《ORACLE 9i Database Performance Tuning Guide and Reference》《ORACLE 9i Database Reference》 《ORACLE 9i SQL Reference》 《ORACLE 9i Database Administrator’s Guide》

一、数据库实例创建过程参数确定 在创建数据库实例过程中,需要确定以下几个参数: 1. 数据块大小(DB_BLOCK_SIZE) 该参数指明了ORACLE所处理的数据存贮于数据文档以及SGA内存中的数据块大小。 该参数的可选择的范围为:4k,8k,16k,32k,64k。对于OLTP系统而言,取值可以为4K或8K,对于DSS系统而言,则可以取较大的数据,如32K或64K 建议统一取8K(即8192) 说明 DB_BLOCK_SIZE的大小将影响创建表时的EXTENT的大小。例如指定db_block_size=16K,某表空间的EXTENT MANAGEMENT 为local autoallocate,则其系统将extent的大小最小指定为1M.所以将可能导致空间的浪费。 2. 字符集(Character set) 该参数确定数据库以何种字符集来存贮CHAR以及V ARCHAR、V ARCHAR2等字符类型的值。对于ORACLE数据字典中的字符(如表及字段的COMMENT 内容)具有同样的作用。因此需要考虑如字符集的使用。对于国际项目,因为数据库中的comment内容(包括表及字符、存贮过程中的中文字符等内容)可能性需要以中文存贮,而用户业务数据使用的字符可能性是使用本地的语言,基于此,该参数需要选择支持UNICODE的字符编码的字符集。目前ORACLE9i支持以下二种UNICODE字符集: ?UTF8 ?AL32UTF8 建议统一取AL32UTF8

oracle中以dba_、user_、v$_、all_、session_、index_开头的常用表和视图

oracle中以dba_、user_、v$_、all_、session_、index_开头的常用表和视图(https://www.wendangku.net/doc/8a8031422.html,/gzz%5Fgzz/blog/item/1f6ef92a67599392033bf6de.html) 2009年08月10日星期一 17:06 oracle中以dba_、user_、v$_、all_、session_、index_开头的常用表和视图dba_开头 dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespaces 数据库表空间信息 dba_data_files 数据文件设置信息 dba_temp_files 临时数据文件信息 dba_rollback_segs 回滚段信息 dba_ts_quotas 用户表空间配额信息 dba_free_space 数据库空闲空间信息 dba_profiles 数据库用户资源限制信息 dba_sys_privs 用户的系统权限信息 dba_tab_privs 用户具有的对象权限信息 dba_col_privs 用户具有的列对象权限信息 dba_role_privs 用户具有的角色信息 dba_audit_trail 审计跟踪记录信息 dba_stmt_audit_opts 审计设置信息 dba_audit_object 对象审计结果信息 dba_audit_session 会话审计结果信息 dba_indexes 用户模式的索引信息 user_开头 user_objects 用户对象信息 user_source 数据库用户的所有资源对象信息 user_segments 用户的表段信息 user_tables 用户的表对象信息 user_tab_columns 用户的表列信息 关于这个还涉及到两个常用的例子如下: 1、oracle中查询某个字段属于哪个表 Sql代码 select table_name,owner from dba_tab_columns t where t.COLUMN_NAME like upper('%username%'); select table_name,owner from dba_tab_columns t where t.COLUMN_NAME like

第9章 视图

第七章视图 一、填空题 1. ____视图___是由一个或多个数据表(基本表)或视图导出的虚拟表。 2.在SQL S erver 2000中,创建视图有三种方法:____SQL语句___、__企业管理器_____、和___视图向导____。 3.视图名及创建日期等信息放在系统表_sysobjects______中。 4.视图是从一个或多个基本表(或视图)派生出的__虚拟_____表。 5.可以使用系统存储过程____ sp_help ___显示视图特征,使用___ sp_help text____显示视图 在系统表中的定义,使用__sp_depands_____显示该视图所依赖的对象。 二、选择题 1.关于视图下列哪一个说法是错误的(B )。 A 视图是一种虚拟表 B 视图中也保存有数据 C 视图也可由视图派生出来 D 视图是保存在SELECT查询 2.SQL Server2000提供了系统过程(),可以用来修改视图的名称。 A sp_help B SP_bindefault C SP_rename D 其他 3.下面语句中,哪种语句用来创建视图()。 A CREA TE TABLE B ALTER VIEW C DROP VIEW D CREAT E VIEW 4.下面语句中,哪种语句用来修改视图()。 A CREA TE TABLE B ALTER VIEW C DROP VIEW D CREA T E VIEW 5.下面语句中,哪种语句用来删除视图()。 A CREA TE TABLE B ALTER VIEW C DROP VIEW D CREA T E VIEW 6.视图是各种关系数据库应用较为成熟的技术,对于安的描述,下面正确的是()。 A视图中的数据是在运行时动态产生的。 B视图是一种特殊的表,同数据库设计人员或程序定义,它存在于数据库中 C从视图中查询数据与从表中查询数据的结果不一致 D使用视图可以提高数据安全性,但是它会降低系统性能 7.通过视图,可以进行的操作有()。 A插入数据B修改数C删除数据D查询数据 E以上全是 三、简答题 1.简述视图优点、缺点。P154 ? 1. 视图的优点 ?视图可以屏蔽数据的复杂性,简化用户对数据库的操作,还可以使用视图重新组织数据。 ?视图可以让不同的用户以不同的方式看到不同或者相同的数据集。 ?安全保护:视图可以定制不同用户对数据的访问权限。 ? 2.视图的缺点 ?性能降低: ?修改的限制:

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自动判定操作应该在哪个分区进行,幸免了整表操作,提高了执行的效率

oracle中性能视图V$SYSSTAT小结

V$SYSSTAT中包含多个统计项,这部分介绍了一些关键的v$sysstat统计项,在调优方面相当有用。下列按字母先后排序: 数据库使用状态的一些关键指标: l CPU used by this session:所有session的cpu占用量,不包括后台进程。这项统计的单位是百分之x秒.完全调用一次不超过10ms l db block changes:那部分造成SGA中数据块变化的insert,update或delete操作数这项统计可以大概看出整体数据库状态。在各项事务级别,这项统计指出脏缓存比率。 l execute count:执行的sql语句数量(包括递归sql) l logons current:当前连接到实例的Sessions。如果当前有两个快照则取平均值。l logons cumulative:自实例启动后的总登陆次数。 l parse count (hard):在shared pool中解析调用的未命中次数。当sql语句执行并且该语句不在shared pool或虽然在shared pool但因为两者存在部分差异而不能被使用时产生硬解析。如果一条sql语句原文与当前存在的相同,但查询表不同则认为它们是两条不同语句,则硬解析即会发生。硬解析会带来cpu和资源使用的高昂开销,因为它需要oracle 在shared pool中重新分配内存,然后再确定执行计划,最终语句才会被执行。 l parse count (total):解析调用总数,包括软解析和硬解析。当session执行了一条sql语句,该语句已经存在于shared pool并且可以被使用则产生软解析。当语句被使用(即共享) 所有数据相关的现有sql语句(如最优化的执行计划)必须同样适用于当前的声明。这两项统计可被用于计算软解析命中率。 l parse time cpu:总cpu解析时间(单位:10ms)。包括硬解析和软解析。 l parse time elapsed:完成解析调用的总时间花费。 l physical reads:OS blocks read数。包括插入到SGA缓存区的物理读以及PGA中的直读这项统计并非i/o请求数。 l physical writes:从SGA缓存区被DBWR写到磁盘的数据块以及PGA进程直写的数据块数量。 l redo log space requests:在redo logs中服务进程的等待空间,表示需要更长时间的log switch。 l redo size:redo发生的总次数(以及因此写入log buffer),以byte为单位。这项统计显示出update活跃性。

使用SpotLight监控数据库性能

使用SpotLight监控数据库性能 8.1.4 使用SpotLight监控数据库性能(1) SpotLight On Oracle是由Quest公司出品的一款针对Oracle进行监控的软件。SpotLight监控Oracle的基本原理与LoadRunner监控类似,通过获取Oracle的数据字典和动态性能视图,然后把性能数据按直观的方式展现出来,如图8.11所示。 (点击查看大图)图8.11 SpotLight On Oracle监控数据库下面简要介绍使用SpotLight对Oracle进行监控的过程。 1.建立Oracle连接 第一步要建立Connection,如图8.12所示,这样才能够使用SpotLight连接到要监测的数据库。

新建连接,然后输入Oracle连接用户账号,确定之后即可进入监控主页面。 2.查看系统主界面进行Oracle监控 系统主界面反映了系统的整体运行情况,如果系统哪方面出现问题,会报相应的警告,最严重为红色警告。然后根据警告可转到相应的子窗口,查看相应的情况。下面介绍各子窗口。 1)Sessions面板 Response:系统的响应时间。 Total Users:总的用户Session数量。 Active Users:当前正在执行的用户Session数量。 2)Host面板 Host面板主要显示CPU利用率和内存使用情况。 3)Server Processes面板 Server Processes面板主要显示服务器进程的信息。主要关注以下几点。 PGA Target/Used:PGA目标总数及当前使用数。 Dedicated:专用服务器进程的个数。 Shared:共享服务器进程的个数。 Job Queue:作业进程的个数。 4)SGA面板 SGA面板主要显示SGA中各组件的内存使用情况,主要关注以下几点。

Oracle常用数据字典表(系统表或系统视图)及查询SQL

Oracle常用数据字典表(系统表或系统视图)及查询SQL 2014年12月15日?数据库?共4187字?暂无评论?阅读861 次 文章目录 ?数据字典分类 ?dba_开头 ?user_开头 ?v$开头 ?all_开头 ?session_开头 ?index_开头 ?伪表 ?数据字典常用SQL查询 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息的视图等。 数据字典系统表,保存在system表空间中。查询所有数据字典可用语句“select * from dictionary;”。 数据字典分类 数据字典主要可分为四部分: 1)内部RDBMS表:x$*,用于跟踪内部数据库信息,维持DB的正常运行。是加密命名的,不允许sysdba以外的用户直接访问,显示授权不被允许。

2)数据字典表:*$,如tab$,obj$,ts$等,用来存储表、索引、约束以及其他数据库结构的信息。 3)动态性能视图:gv$*,v$*,记录了DB运行时信息和统计数据,大部分动态性能视图被实时更新以反映DB当前状态。 4)数据字典视图:user_*、all_*、dba_*,在非Sys用户下,我们访问的都是同义词,而不是V$视图或GV视图。 数据库启动时,动态创建x$,在X$基础上创建GV$,在GV$基础上创建V$X$表-->GV$(视图)--->V$(视图)。 数据字典视图可分为静态数据字典视图和动态数据字典视图。 静态数据字典是指在用户访问数据字典时内容不会发生改变。这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。 静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*(该用户方案对象的信息)、all_*(该用户可以访问的所有对象的信息)、dba_*(全部数据库对象的信息)。 动态数据字典是Oracle包含的一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。 dba_开头 dba_users数据库用户信息

达梦数据库的性能优化

达梦数据库的性能优化 “棱镜门”、“微软XP系统停摆”的接踵而至给我国信息安全敲响了警钟,也加速了国内“去IOE”运动的进程。达梦数据库作为连续5年国产数据库市场占有率第一的高性能、高可靠性、高安全性、高兼容性大型关系型数据库管理系统,已成功替代了Oracle,在电力、金融、电子政务、教育等行业领域得到了广泛的应用,逐渐成为国家信息化建设的重要基础平台。为了更好地支撑业务应用,有效管理和利用信息时代不断产生并急剧膨胀的数据,对达梦数据库的优化显得尤为重要。 一、数据库参数优化 1.优化内存 公共内存池 公共内存池提供了一组内存申请/释放接口,为系统中需要动态分配内存的模块提供服务。 MEMORY_POOL决定了以M为单位的公共内存池的大小,上例中40M;N_MEM_POOLS决定把内存池划分为几个独立的单元,以减少并发访问的冲突,提升并发效率;MEMORY_BAK_POOL表示系统保留的备用内存量,当常规的内存申请都失败时,从这个备用内存里分配,然后在上层模块中进行必要的容错处理。 可以在v$sysstat中查看当前公用内存池的使用情况:

这里的STAT_VAL给出的是已经使用的字节数。正常情况下,应该小于配置的池大小,否则系统不得不从池外向操作系统申请/释放内存,造成效率低下,并可能把操作系统的内存搞得很零碎。 系统缓冲区BUFFER 为了加速数据访问,系统开辟了一个缓冲区,使用LRU算法存放经常访问的数据页,逐步淘汰不用的数据页。 使用下列参数,可配置基本的系统缓冲区的大小: 其中HUGE_BUFFER 是专门用于列存表的缓存区,BUFFER是用户行存表的系统缓冲区。BUFFER表示初始的系统缓冲区大小,单位为M。通常情况下,如果物理数据量大于物理内存,则应该把BUFFER调到物理内存的三分之二比较合适。 当BUFFER_POOLS = 1时,系统支持缓冲区的自动扩展。MAX_BUFFER表示最多能扩到多大。在自动扩展后,如果系统的压力在一段时间内比较低,系统又会自动收缩缓冲区。 系统缓冲区是一个共享资源,受一个mutex保护,在一个时间点,只允许一个线程可以持有这个资源。在高并发情况下,这个限制将极大降低并发效率,因此,可以配置BUFFER_POOLS把一个大的系统缓冲区分割为多个小的部分,每一个小的部分作为临界资源,这样只要所访问的数据页不在同一个子池里,就不会发生冲突,从而提升并发性能。注意,如果配置了BUFFER_POOLS > 1, 则MAX_BUFFER参数就失效了,最大可用的缓冲区由BUFFER参数决定。 系统缓冲区RECYCLE 这是DM新引入的缓冲区,专门用于缓冲临时表空间。RECYCLE的淘汰算法与BUFFER完全一样,但是它有独立的HASH表, LRU和更新链。引入 RECYCLE的目的是防止某些复杂查询的中间结果挤占大量的BUFFER空间,降低BUFFER的命中率,从而增加额外的 IO操作。

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表分区的应用 关于海量数据的表,能够考虑建立分区以提高操作效率。建

相关文档
相关文档 最新文档