您的位置:首页 > 数据库 > Oracle

oracle编程入门笔记2015-01-18--常用oracle查询语句

2015-01-18 14:55 369 查看
1.查询数据存储的物理块信息

select e.rowid,

(select file_name

from dba_data_files where file_id =

dbms_rowid.rowid_to_absolute_fno(e.rowid,'SCOTT','EMP')) FILEN,

dbms_rowid.rowid_block_number(e.rowid) block_no,

dbms_rowid.rowid_row_number(e.rowid) row_no

from emp e

where e.ename='KING'
/

注:记得第二个参数,是用户名,一定要大写。

2.收集统计信息

BEGIN  

  DBMS_STATS.GATHER_TABLE_STATS(ownname =>'DPCRM',  

                                TABNAME => 'T_CUST_CUSTBASEDATA',  

                                CASCADE    =>TRUE,  

                                METHOD_OPT =>'for ALL columns SIZE 1');  

END; 

还有很多参数可以自行搜索。

3.统计索引聚簇因子

select i.table_name || '.' || i.index_name index_name,

       i.clustering_factor,

       t.blocks,

       t.num_rows

  from user_indexes i, user_tables t

 where t.table_name = i.table_name

聚簇因子是oracle决定是否使用索引的一个关键因素。但是聚簇因子往往是不那么准确的。



这是在一本书上看到的关于聚簇因子计算的原理的模拟。

聚簇因子是先按照索引列排序,然后查看前后两行记录是否在同一个块上。如果不在这个索引的聚簇因子就加1

4.查询最近执行过的sql

select sql_id, child_number, hash_value, address, executions, sql_text

  from v$sql

 where parsing_user_id =

       (select user_Id from all_users where username = 'DPCRM')

   and command_type in (2, 3, 6, 7, 189)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: