您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 用户如何有效地利用数据字典
用户如何有效地利用数据字典用户如何有效地利用数据字典ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生,随着数据库的变化而变化,体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。我们不能手工修改数据字典里的信息。很多时候,一般的ORACLE用户不知道如何有效地利用它。dictionary全部数据字典表的名称和解释,它有一个同义词dictdict_column全部数据字典表里字段名称和解释如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句:SQLselect*fromdictionarywhereinstr(comments,'index')0;如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:SQLselectcolumn_name,commentsfromdict_columnswheretable_name='USER_INDEXES';依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看ORACLE的其它文档资料了。下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。一、用户查看当前用户的缺省表空间SQLselectusername,default_tablespacefromuser_users;查看当前用户的角色SQLselect*fromuser_role_privs;查看当前用户的系统权限和表级权限SQLselect*fromuser_sys_privs;SQLselect*fromuser_tab_privs;二、表查看用户下所有的表SQLselect*fromuser_tables;查看名称包含log字符的表SQLselectobject_name,object_idfromuser_objectswhereinstr(object_name,'LOG')0;查看某表的创建时间SQLselectobject_name,createdfromuser_objectswhereobject_name=upper('&table_name');查看某表的大小SQLselectsum(bytes)/(1024*1024)assize(M)fromuser_segmentswheresegment_name=upper('&table_name');查看放在ORACLE的内存区里的表SQLselecttable_name,cachefromuser_tableswhereinstr(cache,'Y')0;三、索引查看索引个数和类别SQLselectindex_name,index_type,table_namefromuser_indexesorderbytable_name;查看索引被索引的字段SQLselect*fromuser_ind_columnswhereindex_name=upper('&index_name');查看索引的大小SQLselectsum(bytes)/(1024*1024)assize(M)fromuser_segmentswheresegment_name=upper('&index_name');四、序列号查看序列号,last_number是当前值SQLselect*fromuser_sequences;五、视图查看视图的名称SQLselectview_namefromuser_views;查看创建视图的select语句SQLsetview_name,text_lengthfromuser_views;SQLsetlong2000;说明:可以根据视图的text_length值设定setlong的大小SQLselecttextfromuser_viewswhereview_name=upper('&view_name');六、同义词查看同义词的名称SQLselect*fromuser_synonyms;七、约束条件查看某表的约束条件SQLselectconstraint_name,constraint_type,search_condition,r_constraint_namefromuser_constraintswheretable_name=upper('&table_name');SQLselectc.constraint_name,c.constraint_type,cc.column_namefromuser_constraintsc,user_cons_columnsccwherec.owner=upper('&table_owner')andc.table_name=upper('&table_name')andc.owner=cc.ownerandc.constraint_name=cc.constraint_nameorderbycc.position;八、存储函数和过程查看函数和过程的状态SQLselectobject_name,statusfromuser_objectswhereobject_type='FUNCTION';SQLselectobject_name,statusfromuser_objectswhereobject_type='PROCEDURE';查看函数和过程的源代码SQLselecttextfromall_sourcewhereowner=userandname=upper('&plsql_name');九、触发器查看触发器setlong50000;setheadingoff;setpagesize2000;select'createorreplacetrigger'||trigger_name||''||chr(10)||decode(substr(trigger_type,1,1),'A','AFTER','B','BEFORE','I','INSTEADOF')||chr(10)||triggering_event||chr(10)||'ON'||table_owner||'.'||table_name||''||chr(10)||decode(instr(trigger_type,'EACHROW'),0,null,'FOREACHROW')||chr(10),trigger_bodyfromuser_triggers;Windows下常见Oracle服务介绍注:SID-数据库标识HOME_NAME-OracleHome名称,如OraHome92、OraHome81(1)OracleServiceSID数据库服务,这个服务会自动地启动和停止数据库。如果安装了一个数据库,它的缺省启动类型为自动。服务进程为ORACLE.EXE,参数文件initSID.ora,日志文件SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。(2)OracleHOME_NAMETNSListener监听器服务,服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过SQL*Net网络协议都属于远程访问),不用这个服务就可以访问本地数据库,它的缺省启动类型为自动。服务进程为TNSLSNR.EXE,参数文件Listener.ora,日志文件listener.log,控制台LSNRCTL.EXE,默认端口1521、1526。(3)OracleHOME_NAMEAgentOEM代理服务,接收和响应来自OEM控制台的任务和事件请求,只有使用OEM管理数据库时才需要,它的缺省启动类型为自动。服务进程为DBSNMP.EXE,参数文件snmp_rw.ora,日志文件nmi.log,控制台LSNRCTL.EXE,默认端口1748。(4)OracleHOME_NAMEClientCache名字缓存服务,服务缓存用于连接远程数据库的OracleNames数据。它的缺省启动类型是手动。然而,除非有一台OracleNames服务器,否则没有必要运行这个服务。服务进程为ONRSD.EXE,参数文件NAMES.ORA,日志文件ONRSD.LOG,控制台NAMESCTL.EXE。(5)OracleHOME_NAMECMAdmin连接管理服务,是构建ConnectionManager服务器所用,只有服务器作为ConnectionManager才需要,它的缺省启动类型是手动。服务进程为CMADMIN.EXE,参数文件CMAN.ORA,日志文件CMADM_PID.TRC,控制台CMCTL.EXE,默认端口1830。(6)OracleHOME_NAMECMan连接网关服务,是构建ConnectionManager服务器所用,只有服务器作为ConnectionManager才需要,它的缺省启动类型是手动。服务进程为CMGW.EXE,参数文件CMAN.ORA,日志文件CMAN_PID.TRC,控制台CMCTL.EXE,默认端口1630。(7)OracleHOME_NAMEDataGatherer性能包数据采集服务,除非使用OracleCapacityPlanner和OraclePerformanceManager,否则不需要启动,它的缺省启动类型是手动。服务进程为VPPDC.EXE,日志文件alert_dg.log,控制台vppcntl.exe。(8)OracleHOME_NAMEHTTPServerOracle提供的WEB服务器,一般情况下我们只用它来访问OracleApache目录下的Web页面,比如说JSP或者modplsql页面。除非你使用它作为你的HTTP服务,否则不需要启动(若启动它会接管IIS的服务),它的缺省启动类型是手动。服务进程为APACHE.EXE,参数文件httpd.conf,默认端口80。(9)OracleHOME_NAMEPagingServer通过一个使用调制解调器的数字传呼机或者电子邮件发出警告(没试过),它的缺省启动类型是手动。服务进程PAGNTSRV.EXE,日志文件paging.log。(10)OracleHOME_NAMENamesOracleNames服务,只有服务器作为NamesServer才需要,它的缺省启动类型是手动。服务进程NAMES.EXE,参数文件NAMES.ORA,日志文件NAMES.LOG,控制台NAMESCTL.EXE,默认端口1575。(11)OracleSNMPPeerMasterAgentSNMP服务代理,用于支持SNMP的网管软件对服务器的管理,除非你使用网管工具监控数据库的情况,否则不需要启动,它的缺省启动类型是手动。服务进程为AGNTSVC.EXE,参数文件MASTER.CFG,默认端口161。(12)OracleSNMPPeerEncapsulaterSNMP协议封装服务,用于SNMP协议转换,除非你使用一个不兼容的SNMP代理服务,否则不需要启动,它的缺省启动类型是手动。服务进程为ENCSVC.EXE,参数文件ENCAPS.CFG,默认端口1161。(13)OracleHOME_NAMEManagementServerOEM管理服务,使用OEM时需要,它的缺省启动类型是手动。服务进程为OMSNTSVR.EXE,日志文件oms.nohup。
本文标题:用户如何有效地利用数据字典
链接地址:https://www.777doc.com/doc-2203183 .html