36、如何查询数据库中有哪些存储过程?
SELECT * FROM dba_objects WHERE object_type='PROCEDURE' and owner='STERN'';
37、如何得到创建存储过程(函数、包)的脚本?
SELECT text FROM user_source WHERE name='PROCEDURE_NAME' and type='PROCEDURE(FUNCTION/PACKAGE)';
38、如何知道存储过程中使用了哪些表?
select referenced_type,referenced_owner,referenced_name from dba_dependencies
where name='PROCEDURE_NAME' and owner='USER' and upper(referenced_type)='TABLE';
39、显示存储过程的编译错误?
show error
40、如何移动表champion从表空间kb8到表空间kb24?
ALTER TABLE champion MOVE TABLESPACE kb24;
ALTER INDEX champion _idx REBUILD TABLESPACE kb24;
41、查询某一用户下所有表的记录数
select table_name,num_rows from dba_tables where owner='STERN';
42、何时使用基于函数的索引?
当sql语句的条件经常使用某个表达式或者某个函数时,用户可以创建基于函数的索引
CREATE INDEX AI_idx ON AI(upper(PG));
43、解决导出时候不导出空表问题:
show parameter deferred_segment_creation;
alter system set deferred_segment_creation=false;
44、查看数据库的版本
Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';
45、查看数据库信息及归档模式:
select dbid,name,log_mode,current_scn,CREATED from v$database;
46、如何备份sqlplus的环境变量值?
store set
47、查询数据库处于何种状态?
select open_mode from v$database;
select status from v$instance;
48、ORA-00205:error in identifying control file,check alert log for more info
控制文件受损,重命名并替换受损的控制文件。
49、查询用户fisher的表空间限额
select tablespace_name,username,max_bytes from dba_ts_quotas where username='FISHER';
50、如何确定数据库启动时使用SPFILE还是PFILE?
show parameter spfile;
51、查看默认临时表空间和查询临时表空间?
select property_name,property_value from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
select distinct tablespace_name from dba_temp_files;
52、如何查看回滚表空间?
show parameter undo_tablespace
select tablespace_name from dba_tablespaces where contents='UNDO';
53、查出一个用户所拥有的角色
select granted_role from dba_role_privs where grantee='DAVID';
54、查看一个表或者索引所占用的空间
SELECT owner, segment_name, SUM(bytes)/1024/1024
FROM dba_segments
WHERE owner= 'STERN' And segment_name='SHARK'
GROUP BY owner,segment_name;
55、验证是否使用本地管理以及ASSM
select tablespace_name,extent_management,segment_space_management from dba_tablespaces;
56、查询有哪些数据库实例在运行
select inst_name from v$active_instances;
57、alter index index_name rebuild和Alter index index_name coalesce?
表在频繁的增删改后,就会造成index对应的block不完整,和系统碎片的情况是一致的,造成空间浪费,加大index的I/O,影响性能。
rebuilding indexes有重建整个索引数的功能,可以在不删除原始索引的情况下改变索引的存储参数,重新构建一个高效的索引,但重构时会锁表。而coalescing indexes对于有些索引中存在大量空间浪费的情况下,整理索引碎片合并索引中同一级的leaf block,效率高,不锁表。
58、如何使用直接加载大批量数据?
直接加载最常见的是和NOLOGGING一起使用,可以有效的减少REDO的生成量;
如果直接加载的表上有索引,oracle不会像加载数据的方式来处理索引的数据,但因需要维护索引,同样会产生很多的REDO;
当使用直接加载时,通常是针对一些数据量非常大的表。如果这些表存在索引,将会带来很大的性能影响,这时可以考虑先将索引DISABLE掉,然后加载数据,之后再重新建立索引。
59、alter table move与alter table shrink space?
alter table move 或shrink space可以收缩段,用来消除部分行迁移,消除空间碎片。
alter table move操作后,数据的rowid发生了改变table上的index需要rebuild,而且执行过程中占用很多表空间:alter table shrink space执行后不会导致索引失效,但调整HWM位置,释放空闲数据块,在业务特别繁忙的系统上可酌情使用。
60、purge和flashback?
当执行drop语句意外删除了表时,表仍然存在于该表空间中,并且被放置在一个oracle称为“回收站”的逻辑容器中,可以使用flashback进行恢复;
使用DROP TABLE PURGE则是永久删除该表,相当于window系统中使用shift+detelte进行文件删除。