1数据字典分类静态数据字典表静态数据字典视图动态数据字典表动态数据字典视图2数据字典使用1.静态数据字典表static的使用数据字典表只能由ORACLE维护。2.静态数据字典视图的使用*通常用户可以通过查询静态数据字典视图来获取所有需要的数据库信息。Oracle静态数据字典分类名称前缀含义user_包含当前数据库用户拥有的所有schema对象的信息all_包含当前数据库用户可以访问的所有schema对象的信息dba_包含所有数据库对象的信息,只有具有DBA角色的这些视图只能由用户访问。例如:select*fromdba_tablesselect*fromall_tablesselect*fromuser_tables;注意:dba_开头必须是sys用户所有,非sys用户需要在前面加上sys前缀。下面是一些常用的Viewfamily,有一个视图是DBA_ALL_USER_常用的viewfamilycol_privs包含了表的column权限信息,包括grantor,grantee和权限名等信息,extents存储分配信息,包括数据段名、表空间名和分区号、分区大小索引索引信息包括索引类型、唯一性、索引函数等表信息ind_columns索引列信息包括列对索引对象的排序方式等信息对象信息包括对象nametype创建时间等信息segmentstableandindex数据段信息,包括表空间,存储设置等信息sequence序列信息,包括序列名,循环,最大值等信息除了触发器同义词信息rmation包括Referencedobject等信息sys_privs系统权限信息包括系统权限名称grantortab_columns表和视图列信息,包括列数据类型等信息tab_privs表权限信息表表字母Information包括表所属的表空间、存储参数、数据行数等。triggersTriggerinformation包括触发器的类型和事件。触发正文等用户信息用户信息。包括用户临时和默认表空间类型视图查看信息权限查看role_sys_privs角色拥有的系统权限查看role_tab_privs角色拥有的对象权限用户对user_col_privs_recd列有对象权限用户对列3有对象权限动态性能表是数据库实例启动后创建的表。动态性能表是数据SYS用户;用于存储数据库运行过程中与性能相关的信息。通过以下视图查看selectnamefromv_$fixed_table;4.动态性能视图的使用;只有sys用户和具有DBA角色的用户可以访问。当数据库启动到NOMOUNT状态时,我们可以访问v$参数v$sgav$sessionv$processv$instancev$versionv$option当数据库启动到mount状态时,我们也可以访问v$当数据库完全启动时,记录v$logfieldv$datafilev$controlfilev$databasev$threadv$datafile_header。可以访问使用v_$fixed_table动态性能视图v$access包含当前锁定的数据库对象和正在访问它们的会话v$archive包含归档所需的重做日志文件中的信息v$archived_log包含从控制文件中获取的信息Archived的日志信息。v$archive_processes包含有关与实例关联的arch进程状态的信息v$backup包含有关在线数据文件备份状态的信息v$backup_async_io包含有关从控制文件获取的备份集的信息v$backup_corruption包含有关备份集的信息从控制文件中获取数据文件备份中的损坏信息。v$backup_datafile包含从控制文件中获取的备份数据文件和备份控制文件的信息v$backup_device包含支持的备份设备的信息v$backup_piece包含从控制文件中获取的备份块的信息v$backup_redolog包含从控制文件中获取的信息v$backup_set中获取的备份集的归档日志信息包含从控制文件中获取的备份集信息v$bgprocess包含数据库后台进程的信息v$buffer_pool包含数据库中所有可用缓冲池的信息当前实例v$buffer_pool_statistics包含当前实例所有可用缓冲池的统计信息。v$cache包含了当前实例的SGA中每个块的头部信息。v$context包含当前会话的属性信息。v$controlfile包含有关控制文件的信息v$controlfile_record_section包含有关控制文件记录部分的信息v$copy_current包含有关从控制文件获得的数据文件副本损坏的信息v$database包含有关从控制文件获得的数据库的信息controlfilev$datafile包含从控制文件获取的数据文件信息v$datafile_copy包含从控制文件获取的数据文件副本的信息v$datafile_header包含数据文件头信息v$db_object_cache包含缓存在的数据库对象信息库缓存v$db_pipes包含当前数据库中管道的信息v$deleted_object包含从控制文件中获取的已删除归档日志、数据文件副本和备份块的信息v$dispatcher_rate包含调度进程v$的速率统计信息dispatche包含dispatch的信息patcher进程v$DLM_ALL_LOCKS包含所有当前锁v$DLM_CONVERT_LOCAL包含本地锁转换操作消耗的时间信息v$EVENT_NAME包含等待时间的信息v$fixed_table包含所有可用的动态性能视图和动态性能表的信息v$sysstat包含currentInstance性能统计v$instance包含当前实例的详细信息v$sga包含SGA区主要组件的信息v$sgainfo包含SGA区的详细信息v$parameter包含初始化参数信息v$sversion包含Oracle版本informationv$option包含已安装的Oraclette组件的选项信息v$session包含所有当前会话信息v$process包含所有当前系统进程信息v$bgprocess包含所有数据库后台进程信息v$database包含当前数据库信息v$controlfilecontains当前数据库所有控制文件信息v$datafile包含当前数据库中所有数据文件的信息v$dbfile包含所有数据文件的编号信息v$logfile包含当前数据库中所有重做日志文件的信息v$log包含当前数据库重做日志文件信息v$log_history包含重做日志文件切换的历史信息v$thread包含当前数据库线程信息v$lock包含锁信息v$locked_object包含锁定的数据库对象信息v$rollname包含当前在线的回滚信息v$rollstat包含当前所有回滚段的统计信息v$tablespace包含当前数据库中所有表空间的信息v$tempfile包含当前数据库中临时数据文件的信息;查看当前用户的默认表空间SQL>selectusername,default_tablespacefromuser_users;查看当前用户的角色SQL>select*fromuser_role_privs;查看当前用户的系统权限和表级权限SQL>select*fromuser_sys_privs;SQL>select*fromuser_tab_privs;查看用户下的所有表SQL>select*fromuser_tables;查看用户下所有表的列属性SQL>select*fromUSER_TAB_COLUMNSwheretable_name=:table_Name;显示用户信息(所属表空间)selectdefault_tablespace,temporary_tablespacefromdba_userswhereusername='GAME';1。users查看当前用户的默认表空间SQL>selectusername,default_tablespacefromuser_users;查看当前用户的角色SQL>select*fromuser_role_privs;查看当前用户的系统权限和表级权限SQL>select*fromuser_sys_privs;SQL>select*fromuser_tab_privs;显示当前会话的权限SQL>select*fromsession_privs;显示指定用户的系统权限SQL>select*fromdba_sys_privswheregrantee='GAME';显示特权用户select*fromv$pwfile_users;显示用户信息(属于表空间)selectdefault_tablespace,temporary_tablespacefromdba_userswhereusername='GAME';显示用户的PROFILEselectprofilefromdba_userswhereusername='GAME';2、tables查看用户下的所有表SQL>select*fromuser_tables;查看名称中包含日志字符的表SQL>selectobject_name,object_idfromuser_objectswhereinstr(object_name,'LOG')>0;查看一个表CreatetimeSQL>selectobject_name,createdfromuser_objectswhereobject_name=upper('&table_name');查看表的大小SQL>selectsum(bytes)/(1024*1024)as"size(M)"fromuser_segmentswheresegment_name=upper('&table_name');查看放在Oracle内存区的表SQL>selecttable_name,cachefromuser_tableswhereinstr(cache,'Y')>0;3、Index查看索引的个数和类别SQL>selectindex_name,index_type,table_namefromuser_indexesorderbytable_name;查看索引字段SQL>select*fromuser_ind_columnswhereindex_name=upper('&index_name');查看索引的大小SQL>selectsum(bytes)/(1024*1024)as"thesize(M)"fromuser_segmentswheresegment_name=upper('&index_name');4.通过序号查看序号,last_number为当前值SQL>select*fromuser_sequences;5.查看视图的名称SQL>selectview_namefromuser_views;view创建视图的select语句SQL>setview_name,text_lengthfromuser_views;SQL>setlong2000;说明:setlong的大小可以根据视图的text_length值设置SQL>selecttextfromuser_viewswhereview_name=upper('&view_name');6.检查同义词的名称SQL>select*fromuser_synonyms;7.检查表的约束条件SQL>selectconstraint_name,constraint_type,search_condition,r_constraint_namefromuser_constraintswheretable_name=upper('&table_name');SQL>selectc.constraint_name,c.constraint_type,cc.column_namefromuser_constraintsc,user_cons_columnscc其中c.owner=upper('&table_owner')andc.table_name=upper('&table_name')和c.owner=cc.owner和c.constraint_name=cc。constraint_nameorderbycc.position;8.存储函数和过程查看函数和过程的状态SQL>selectobject_name,statusfromuser_objectswhereobjectct_type='功能';SQL>selectobject_name,statusfromuser_objectswhereobject_type='PROCEDURE';查看函数和过程的源代码SQL>selecttextfromall_sourcewhereowner=userandname=upper('&plsql_name');
