网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

三个sql视图(1)

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
v$sqltext
    存储的是完整的SQL,SQL被分割
    
    SQL>descv$sqltext
    NameNull?Type
    -----------------------------------------------------------------------------
    ADDRESSRAW(4)---------
    HASH_VALUENUMBER---------和address一起唯一标志一条sql
    COMMAND_TYPENUMBER
    PIECENUMBER----------分片之后的顺序编号
    SQL_TEXTVARCHAR2(64)--------------注意长度
    
    v$sqlarea---------存储的SQL和一些相关的信息,比如累计的执行次数,逻辑读,物理读等统计信息
    SQL>descv$sqlarea
    NameNull?Type
    -----------------------------------------------------------------------------
    SQL_TEXTVARCHAR2(1000)
    SHARABLE_MEMNUMBER
    PERSISTENT_MEMNUMBER
    RUNTIME_MEMNUMBER
    SORTSNUMBER
    VERSION_COUNTNUMBER
    LOADED_VERSIONSNUMBER
    OPEN_VERSIONSNUMBER
    USERS_OPENINGNUMBER
    FETCHESNUMBER
    EXECUTIONSNUMBER
    USERS_EXECUTINGNUMBER
    LOADSNUMBER
    FIRST_LOAD_TIMEVARCHAR2(38)
    INVALIDATIONSNUMBER
    PARSE_CALLSNUMBER
    DISK_READSNUMBER
    BUFFER_GETSNUMBER
    ROWS_PROCESSEDNUMBER
    COMMAND_TYPENUMBER
    OPTIMIZER_MODEVARCHAR2(25)
    PARSING_USER_IDNUMBER
    PARSING_SCHEMA_IDNUMBER
    KEPT_VERSIONSNUMBER
    ADDRESSRAW(4)
    HASH_VALUENUMBER
    MODULEVARCHAR2(64)
    MODULE_HASHNUMBER
    ACTIONVARCHAR2(64)
    ACTION_HASHNUMBER
    SERIALIZABLE_ABORTSNUMBER
    CPU_TIMENUMBER
    ELAPSED_TIMENUMBER
    IS_OBSOLETEVARCHAR2(1)
    CHILD_LATCHNUMBER
    
    v$sql----------存储的是具体的SQL和执行计划相关信息,实际上,v$sqlarea可以看做v$sql根据sqltext等做了groupby之后的信息
    
    SQL>descv$sql
    NameNull?Type
    -----------------------------------------------------------------------------
    SQL_TEXTVARCHAR2(1000)
    SHARABLE_MEMNUMBER
    PERSISTENT_MEMNUMBER
    RUNTIME_MEMNUMBER
    SORTSNUMBER
    LOADED_VERSIONSNUMBER
    OPEN_VERSIONSNUMBER
    USERS_OPENINGNUMBER
    FETCHESNUMBER
    EXECUTIONSNUMBER
    USERS_EXECUTINGNUMBER
    LOADSNUMBER
    FIRST_LOAD_TIMEVARCHAR2(38)
    INVALIDATIONSNUMBER
    PARSE_CALLSNUMBER
    DISK_READSNUMBER
    BUFFER_GETSNUMBER
    ROWS_PROCESSEDNUMBER
    COMMAND_TYPENUMBER
    OPTIMIZER_MODEVARCHAR2(10)
    OPTIMIZER_COSTNUMBER
    PARSING_USER_IDNUMBER
    PARSING_SCHEMA_IDNUMBER
    KEPT_VERSIONSNUMBER
    ADDRESSRAW(4)
    TYPE_CHK_HEAPRAW(4)
    HASH_VALUENUMBER
    PLAN_HASH_VALUENUMBER
    CHILD_NUMBERNUMBER----------注意这个
    MODULEVARCHAR2(64)
    MODULE_HASHNUMBER
    ACTIONVARCHAR2(64)
    ACTION_HASHNUMBER
    SERIALIZABLE_ABORTSNUMBER
    OUTLINE_CATEGORYVARCHAR2(64)
    CPU_TIMENUMBER
    ELAPSED_TIMENUMBER
    OUTLINE_SIDNUMBER--------------注意这里跟outline有关
    CHILD_ADDRESSRAW(4)
    SQLTYPENUMBER
    REMOTEVARCHAR2(1)
    OBJECT_STATUSVARCHAR2(19)
    LITERAL_HASH_VALUENUMBER
    LAST_LOAD_TIMEVARCHAR2(38)
    IS_OBSOLETEVARCHAR2(1)
    CHILD_LATCHNUMBER
    
    另外注意这个
    QL>descv$sql_plan
    NameNull?Type
    -----------------------------------------------------------------------------
    ADDRESSRAW(4)
    HASH_VALUENUMBER
    CHILD_NUMBERNUMBER------------注意这个和v$sql里面的相同字段
    OPERATIONVARCHAR2(60)
    OPTIONSVARCHAR2(60)
    OBJECT_NODEVARCHAR2(20)
    OBJECT#NUMBER
    OBJECT_OWNERVARCHAR2(30)
    OBJECT_NAMEVARCHAR2(64)
    OPTIMIZERVARCHAR2(40)
    IDNUMBER
    PARENT_IDNUMBER
    DEPTHNUMBER
    POSITIONNUMBER
    SEARCH_COLUMNSNUMBER
    COSTNUMBER
    CARDINALITYNUMBER
    BYTESNUMBER
    OTHER_TAGVARCHAR2(70)
    PARTITION_STARTVARCHAR2(10)
    PARTITION_STOPVARCHAR2(10)
    PARTITION_IDNUMBER
    OTHERVARCHAR2(4000)
    DISTRIBUTIONVARCHAR2(40)
    CPU_COSTNUMBER
    IO_COSTNUMBER
    TEMP_SPACENUMBER
    ACCESS_PREDICATESVARCHAR2(4000)
    FILTER_PREDICATESVARCHAR2(4000)
    
    
    实际上,看起来同样的一句SQL,往往具有不同的执行计划
    如果是不同的数据库用户,那么相应的涉及的对象可能都不一样,注意v$sql中
    OBJECT#NUMBER
    OBJECT_OWNERVARCHAR2(30)
    OBJECT_NAMEVARCHAR2(64)
    OPTIMIZERVARCHAR2(40)
    
    即使是相同的数据库用户,若session的优化模式、session级的参数等不一样,执行计划也能不同。所以即使相同的sql,也可能具有不同的执行计划!
    
    v$sqljointov$sql_plan就代表了具体的sql的执行计划,通过下面3个字段做连接
    
    ADDRESSRAW(4)
    HASH_VALUENUMBER
    CHILD_NUMBERNUMBER
    而v$SQLAREA忽略了执行计划等差异,只是在形式上sql文本看起来一样!相当于做了个聚合,是多个不同执行计划的sql的聚合和累计信息
    
    Oracle9i中v$sql、v$sqlarea、v$sqltext、v$sql_plan的联系与区别
    对于同一个SQL语句,如果在不同环境下使用了不同的优化器目标的情况下,会有不同的执行计划,
    这样就要求分别有一个独立的游标(即子游标)来区别出每一种情况下的不同的运行行为。
    Oracle用v$sqlarea中一行保存同样语句的SQL,并用字段version_count的值来指出子游标的个
    数,而在v$sql里面为每个子游标保留了一个单独的行。两个表可以通过字段address和hash_value
    相互对应。例如下面例子:
    SQL>selectaddress,hash_value,sql_text,version_count
    2fromv$sqlareawheresql_textlike'selectvalue$fromsys.props%';
    ADDRESSHASH_VALUESQL_TEXTVERSION_COUNT
    -----------------------------------------------------------------------------
    97F1C9C4563046721selectvalue$fromsys.props$wherename=:13
    SQL>selectaddress,hash_value,child_address,child_number,sql_text
    2fromv$sqlwheresql_textlike'selectvalue$fromsys.props%';
    ADDRESSHASH_VALUECHILD_ADDRESSCHILD_NUMBERSQL_TEXT
    -----------------------------------------------------------------------------------------
    97F1C9C456304672197F1C4480selectvalue$fromsys.props$wherename=:1
    97F1C9C456304672197EAD3B01selectvalue$fromsys.props$wherename=:1
    97F1C9C456304672197E7EEF02selectvalue$fromsys.props$wherename=:1
    如果想找出这个SQL语句的执行计划,也可以通过字段address、hash_value和child_number到v$sql_plan中查找,
    v$sql_plan中是区分了不同子游标的执行计划的
    SQL>selectaddress,child_number,lpad('',2*level)||operation||decode(id,0,'cost='||position)op,
    2options,object_name
    3fromv$sql_plantwhereaddress='97F1C9C4'andhash_value=563046721;
    ADDRESSCHILD_NUMBEROPOPTIONSOBJECT_NAME
    ---------------------------------------------------------------------
    97F1C9C42SELECTSTATEMENTcost=0
    97F1C9C42TABLEACCESSFULLPROPS$
    97F1C9C41SELECTSTATEMENTcost=0
    97F1C9C41TABLEACCESSFULLPROPS$
    97F1C9C40SELECTSTATEMENTcost=0
    97F1C9C40TABLEACCESSFULLPROPS$
    视图v$sqltext中没有SQL语句的相关统计信息,但是v$sqltext用多行来保存sql语句,而v$sqlarea中只能
    保存sql语句的前1000个字节,所以如果sql语句大于1000个字节,就要到v$sqltext中查看完整的语句,其字
    段PIECE表示每个sql的行顺序。
    
    
    发表于:2006-08-28,修改于:2006-08-2815:21,已浏览145
    
  • 上一篇资讯: 三个sql视图
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师