当前位置: 首页 > news >正文

网站分为哪几种建筑人才网评职称

网站分为哪几种,建筑人才网评职称,泉州网站设计理念培训,做儿童网站游标从Oracle数据库管理员的角度上说#xff0c;游标是对存储在库缓存中的可执行对象的统称。SQL语句是存储在库缓存中的#xff0c;它是游标。除了它之外#xff0c;还有Oracle的存储过程也是存储在库缓存中的可执行对象#xff0c;从Oracle DBA的角度上说#xff0c;它也…游标从Oracle数据库管理员的角度上说游标是对存储在库缓存中的可执行对象的统称。SQL语句是存储在库缓存中的它是游标。除了它之外还有Oracle的存储过程也是存储在库缓存中的可执行对象从Oracle DBA的角度上说它也是游标。Oracle也把它算为游标在某些和游标相关的视图中也会显示存储过程的一些信息的。但从开发者的角度说只有SQL语句才是游标。子游标与父游标。如果两个游标的文本一模一样但由于环境不同比如游标所操作的表是不同用户下的同名表这两个游标是不能共享执行计划的。它们都有各自的执行计划存在库缓存中。这两个游标就是子游标Oracle还会建立一个父游标父游标中没有执行计划它只是文本相同但执行计划不同的所有游标的代表。其实在库缓存中即使没有文本相同的子游标Oracle也会为每个游标都创建父游标。因为父游标是文本相同的子游标的代表吗所有文本相同的游标共享同一个父游标。也就是说只要你执行SQL语句Oracle都会在库缓存中保存一父一子两个游标。如果你执行了文本相同但环境不同因而不能共享执行计划的SQL语句那么一个父游标可能就对应多个子游标。父游标没有执行计划它只有一些信息管理性数据Oracle添加它的目的就是为了管理文本相同的游标。有一个视图是专门针对父游标的就是V$sqlarea。V$SQL常用字段SHARABLE_MEM游标所占共享内存SORTS游标完成的排序次数FETCHES抓取的次数PX_SERVERS_EXECUTIONS以并行方式执行的总次数EXECUTIONS执行次数LOADS游标被加载或重新加载到库缓存中的次数。游标只所以被重新加载有可能是游标无效或库缓存内存不足。INVALIDATIONS游标的无效次数PARSE_CALLS游标的解析次数包括硬解析与软解析DIRECT_WRITES游标直接写的次数DISK_READS游标执行了多少次物理读USER_IO_WAIT_TIME用户I/O等待时间CPU_TIME游标解析、执行、抓取时所用的CPU时间。单位是微秒。ELAPSED_TIME游标解析、执行、抓取时所用的总时间。单位是微秒。V$sql_text视图这个视图的目的是显示过长的SQL语句文本。对于这些文本过长的SQL语句在V$sql_text中将分多行显示完整的SQL语句每行显示64字节。效果如下步1我发布一个文本很长的SQL语句这个语句没什么意义只是想让它文本长一点SQL select case id when 1 then one when 2 then two end case, name from (select * from ui1 where id1) where id1 or id2;CAS NAME--- -----one 1步2我需要知道此语句的HASH值然后以此HASH值为条件在V$SQL_TEXT中查询SQL select sql_text, hash_value from v$sqlarea where sql_text like select case id when 1 then%;SQL_TEXT HASH_VALUE---------------------------------------------------------------------- ----------select case id when 1 then one when 2 then two end case, name from 4270697726(select * from ui1 where id1) where id1 or id2此语句的HASH值是4270697726。按照此HASH值在V$sql_text中查询SQL select rownum, sql_text from v$sqltext where hash_value4270697726;ROWNUM SQL_TEXT---------- ----------------------------------------------------------------------1 e from (select * from ui1 where id1) where id1 or id22 select case id when 1 then one when 2 then two end case, namV$open_cursor与Open_cursor参数这个视图和参数涉及游标的打开。什么是游标的打开就是在库缓存中用户在软、硬解析游标时会在游标对象的句柄上加一个锁也就是Library cache lock。在解析并执行完游标后这个锁并不会马上去掉而是会一直保留着直到用户发出了Close命令关闭游标时为止。我们在SQL*Plus命令窗口中发出的命令在抓取完所有行后SQL*Plus将自动为我们发出Close命令来关闭游标。SQL show parameter cursor_sharingNAME TYPE VALUE------------------------------------ ----------- ------------------------------cursor_sharing string EXACT当游标打开时Library cache lock将一直保持这样即使库缓存内存紧张需要老化对象也不会老化这些还正在加锁的对象。因此如果用户不停的要求数据库服务器打开游标、执行SQL但却忘了关闭游标这很容易耗尽共享池的内存。为此Oracle准备了一个参数就是Open_cursor它的默认值在9i下是50在10g中是300也就是说在10g下每个会话最多只能同时打开300个游标。有了这个限制就不用害怕用户不停的打开游标但又不关闭它而耗尽共享池内存了。如果会话同时打开的游标数量超出了Open_cursor参数的限制Oracle将禁止会话打开新的游标。同时报出错误ORA-01000: 超出打开游标的最大数 。在用户断开会话的连接后会话打开的这些游标将自动关闭。V$open_cursor视图专用来查看当前会话打开的游标信息。它只能查看当前会话打开的游标。CURSOR_SHARING参数如果应用程序中有很多类似下面这样的SQL语句select * from 某表 where id1;select * from 某表 where id2;select * from 某表 where id50;等等这些SQL语句严格来说是无法共享游标(也就是共享执行计划)的但是这些语句所需要的执行计划其实都是一样的。无论你在表中查询ID为1的行还是查询ID为100的行执行方式应该是一样的。如果你想让这样的语句共享游标那么你可以改变Cursor_sharing参数的值。此参有三个值EXACT这个值是默认值。除非游标文本一模一样否则不会共享游标。SIMILAR这个最智能如果游标只有条件中的数据值部分不同并且库缓存中原有游标的执行计划对于新执行的SQL语句也是最优的将不再为SQL语句创建新的游标而是让它共享库缓存中原有的游标。FORCE 不比较执行计划是否最优只要游标中除了条件中的数据值部分不同外其他部分都相同就会共享游标。Oracle可以将一部分执行次数比较多的游标的信息缓存在会话的私人内存PGA中这样当被缓存游标再被执行时很多数据不必再到库缓存中寻找会话直接可以在自己的PGA中取出。这可以大大提高软解析的速度这样的解析被称为更软的软解析(或快速软解析)。一般来说会话在执行游标时第一步会到自己的PGA中搜索游标如果找到了这就是更软的软解析。如果游标没有被缓存到PGA中再到库缓存中查找如果找到了这就是普通的软解析。如果库缓存中也没有就进行硬解析重新生成游标相关数据和执行计划。如果会话在执行游标时发现游标的总的执行次数已经超过了三次就会将游标信息缓存在自己的PGA中。此参数的作用是设定一个会话共可以缓存多少个游标。此参数的值如果比较大将会耗用更多的PGA和共享池内存但是这对提高软解析速度是很有帮助的。如果你的数据库软解析耗用了过多的时间可以尝试加大此参数的值。在10g中此参数默认值是30。在大型OLTP应用中此参数的值一般都设置为几百甚至上千。version countV$SQLAREA有一个列是V$SQL中没有的就是VERSION_COUNT它是对应同一父游标的子游标的数量。如果这个数字太高可能代表由于某些原因使本可以共享执行计划的游标没有共享我们使用实验SQL通过视图v$sqlarea和v$sql可以观察到library cache中的父子游标情况。v$sqlarea中保存父游标信息而v$sql保存子游标信息。SQL select /*version_count */count(*) from t where wnerSCOTT;COUNT(*)----------14SQL select sql_id, version_count fromv$sqlareawhere sql_text like select /*version_count */count(*)%;SQL_ID VERSION_COUNT------------- -------------54fuganxkyky6 1SQL select sql_id, child_number fromv$sql where sql_id54fuganxkyky6;SQL_ID CHILD_NUMBER------------- ------------54fuganxkyky6 0SQL语句(sql_id54fuganxkyky6)对应一个父游标和一个子游标。version count就表示当前父游标下对应子游标的个数。如果一个父游标对应的子游标version count过多也就是对应了很多的子游标对象。这样当server process检查可共享的游标时就需要长时间的检索子游标列表。最有名的version count过多问题是由于设置cursor_sharing参数为similar后引发的version count错误。
http://www.pierceye.com/news/264270/

相关文章:

  • 手机建设银行官方网站网站开发要点
  • 做简历的网站有随州网站建设学校
  • 深圳建设网站企业青白江做网站的公司
  • dm网站制作软件无忧网站建设
  • 如何在自己的网站上做歌单王建设医生网站
  • 科技+杭州+网站建设做效果图的网站有哪些
  • 引流推广网站平台wordpress页面发布失败
  • 南京哪家网站建设好网站开发需要注意的
  • 一个综合网站上线多少钱wordpress粘贴word
  • 承接电商网站建设新手做自己的网站
  • 网页版视频网站建设需要多少钱四川鸿业建设集团公司网站
  • h5网站实例wordpress改造mip
  • 完整的网络营销推广方案包括优化营商环境心得体会个人
  • 商洛市住房和城乡建设局网站建免费网站
  • 做网站要多少的服务器网站设计的步骤
  • 网站关键词怎么做上首页wordpress 架构原理
  • 厦门专业网站建设代理国外在线crm系统suitecrm
  • 哪个网站可以领手工活在家做wordpress heroku
  • 为什么没有网站做图文小说电子商务网站开发的课程介绍
  • 在哪个网站做问卷好单页面网站推广
  • 专业网站建设模块维护静海网站建设
  • 国内前十网站建设公司龙之网官网
  • 昆山做网站的公昆山做网站的公司司网站开发与设计岗位职责
  • 网站投注员怎么做做旅游项目用哪家网站好
  • 环县网站怎么做咸阳网站开发公司地址
  • 重庆巴南网站制作wordpress外贸建站公司
  • 桂林旅游网站制作公司软件开发公司属于什么行业
  • 网站 备案 中国 名字老薛主机 wordpress
  • 有什么网站可以做投票功能合肥房地产交易网
  • 世界网站广西建设工程质检安全网站