T-SQL Part V: Locks】的更多相关文章

Oracle 11g实时SQL监控: 前面提到,在Oracle Database 11g中,v$session视图增加了一些新的字段,这其中包括SQL_EXEC_START和SQL_EXEC_ID, 这两个字段实际上代表了Oracle 11g的一个新特性:实时的SQL监控(Real Time SQL Monitoring). 在Oracle 11g之前的版本,长时间运行的SQL可以通过监控v$session_longops来观察,当某个操作执行时间超过6秒, 就会被记录在v$session_lo…
v$sql V$SQL中存储具体的SQL语句. 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1).如果有多个cursor(子游标)存在,在V$SQLAREA为所有cursor提供集合信息. 例1: 这里介绍以下child cursor user A: select * from tbl user B: select * from tbl 大家认为这两条语句是不是一样的啊,可能会有很多人会说是一样的,但我告诉你不一定,那为什么呢? 这个tblA看起来是一样的,但…
转载于作者:dbtan 原文链接:http://www.dbtan.com/2009/12/vsql-and-vsqlarea-view.html v$sql和v$sqlarea视图: 上文提到,v$sqlarea和v$sql两个视图的不同之处在于,v$sql中为每一条SQL保留一个条目,而v$sqlarea中根据sql_text进行group by,通过version_count计算子指针的个数.下面对这个问题进行一点延伸探讨. 首先介绍一下v$sql视图,v$sql视图列举了共享SQL区(S…
写SQL最常见的问题就是Dead Lock了.本篇简单介绍入门级别的Lock使用和排查. 首先来看MSDN上的官方文档(https://technet.microsoft.com/en-us/library/jj856598(v=sql.110).aspx). 摘要一下,SQL Server可以进行Lock的Resource: Resource Description RID A row identifier used to lock a single row within a heap. KE…
转自:http://gldbhome.blog.51cto.com/1552935/886316 视图v$sqltext中没有SQL语句的相关统计信息,但是v$sqltext用多行来保存sql语句,而v$sqlarea中只能保存sql语句的前1000个字节,所以如果sql语句大于1000个字节,就要到v$sqltext中查看完整的语句,其字段PIECE表示每个sql的行顺序. v$sqlarea --------- 存储的SQL 和一些相关的信息,比如累计的执行次数,逻辑读,物理读等统计信息v$…
V$SQL*表用于查看Shared SQL Area中SQL情况 V$SQLTEXT V$SQLTEXT用途很简单,就是用来查看完整的SQL语句,V$SQL和V$SQLAREA只能显示1000 bytes,且特殊字符用空格替代. This view contains the text of SQL statements belonging to shared SQL cursors in the SGA. Column Datatype Description ADDRESS ) Used wi…
11g中引入了新的动态性能视图V$SQL_MONITOR,该视图用以显示Oracle监视的SQL语句信息.SQL监视会对那些并行执行或者消耗5秒以上cpu时间或I/O时间的SQL语句自动启动,同时在V$SQL_MONITOR视图中产生一条记录.当SQL语句正在执行,V$SQL_MONITOR视图中的统计信息将被实时刷新,频率为每秒1次.SQL语句执行完成后,监视信息将不会被立即删除,Oracle会保证相关记录保存一分钟(由参数_sqlmon_recycle_time所控制,默认为60s),最终这…
学习动态性能表 第三篇-(1)-v$sq 2007.5.25 V$SQL中存储具体的SQL语句. 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1).如果有多个cursor(子游标)存在,在V$SQLAREA为所有cursor提供集合信息. 例1: 这里介绍以下child cursor user A: select * from tbl user B: select * from tbl 大家认为这两条语句是不是一样的啊,可能会有很多人会说是一样的,但我告诉你不…
v$sqltext存储的是完整的SQL,SQL被分割 SQL> desc v$sqltextName                                      Null?    Type----------------------------------------- -------- ----------------------------ADDRESS                                            RAW(4)    ---------…
1.获取正在执行的sql语句.sql语句的执行时间.sql语句的等待事件: select a.sql_text,b.status,b.last_call_et,b.machine,b.event,b.program from v$sql a,v$session b where a.sql_id=b.sql_id 2.获取sql语句执行时间: select sql_text,cpu_time/1000/1000 t_cpu,trunc(elapsed_time/1000/1000) t_elaps…
在SQL Server数据库或OACLE数据库当中,通常一个会话持有某个资源的锁,而另一个会话在请求这个资源,就会出现阻塞(blocking).这是DBA经常会遇到的情况.当出现SQL语句的阻塞时,很多人想查看阻塞的源头(哪个SQL语句阻塞了哪个SQL),这样方便直观.简洁明了的定位问题.但是很多时候,很多场景,我们通过SQL语句并不能或者说不容易定位到阻塞者(Blocker)的SQL语句,当然我们可以很容易找到被阻塞的SQL语句,以及它在等待的锁资源.下面我们先分析一下SQL Server数据…
2014-06-20 Created By BaoXinjian…
select event,count(1) from gv$session group by event order by 2;exec dbms_workload_repository.create_snapshot;select 'alter system kill session '''||sid||','||serial#||''';' from v$session where event='latch free'; SET LINESIZE 200SET NEWPAGE NONECOL…
Appendices Published: April 27, 2005 On This Page Appendix A: SQL Server for Oracle Professionals Appendix B: Getting the Best Out of SQL Server 2000 and Windows Appendix C: Baselining Appendix D: Installing Common Drivers and Applications Installing…
常用DBA脚本1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; 2.查看表空间物理文件的名称及大小 select tablespace_name, file_id,…
数据库各个表空间增长情况的检查: SQL >SELECT A.TABLESPACE_NAME,( 1-(A.TOTAL)/B.TOTAL)* 100 USED_PERCENT FROM (SELECT TABLESPACE_NAME,SUM (BYTES) TOTAL FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) A,(SELECT TABLESPACE_NAME,SUM (BYTES) TOTAL FROM DBA_DATA_FILES GROUP…
我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析.在Oracle中存在两种类型的SQL语句,一类为 DDL语句(数据定义语言),他们是从来不会共享使用的,也就是每次执行都需要进行硬解析.还有一类就是DML语句(数据操纵语言),他们会根据情况选择要么进行硬解析,要么进行软解析. DML:INSERT,UPDATE,DELETE,SELECT DDL:CREATE,DROP,ALTER 一.  SQL 解析过程 Oracle对此SQL将进行几个步骤的处理过…
事情的发生就是这么偶然,一步步的深入才能汲取到更深入的知识~~ -------------------START-------------------------------------------   来了一个query running longer than 4hours的邮件,来看看里面有哪些sql: SID    SERIAL#    INST_ID SQL_ID        Run_in_sec OS_user     MACHINE       SQL_TEXT         …
From http://blog.csdn.net/wujiandao/article/details/6621073 1. Four ways to get execution plan(anytime you want, for specified sql) • Execute the SQL statement EXPLAIN PLAN, and then query the table where the output was written. • Query a dynamic per…
1.查看是否有锁表的sql 代码如下: select 'blocker('||lb.sid||':'||sb.username||')-sql:'|| qb.sql_text blockers, 'waiter ('||lw.sid||':'||sw.username||')-sql:'|| qw.sql_text waiters from v$lock lb, v$lock lw, v$session sb, v$session sw, v$sql qb, v$sql qw where lb.…
v$database: 视图结构: SQL> desc v$database; Name                                      Null?    Type ----------------------------------------- -------- ------------------------------------------------------------------------- DBID                         …
1. 查看性能最差的前100sql SELECT * FROM ( SELECT PARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_text                 FROM v$sqlarea                 ORDER BY disk_reads DESC)    WHERE ROWNUM<100   2.oracle 10g 查看某session的历史执行sql情况(sql采样间隔1s) ora…
16.1 Introduction to SQL Tuning Identifying high load or top SQL statements that are responsible for a large share of the application workload and system resources, by reviewing past SQL execution history available in the system Verifying that the ex…
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://github.com/jiangxincode 知乎地址: https://www.zhihu.com/people/jiangxinnju -- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是视图 -- DBA_TABLES意为DBA拥有的或可以访问的所有的…
Real-Time SQL Monitoring可以在sql运行的时候监控其性能. 缺省情况下,单个sql执行花费的CPU或I/O时间超过5秒或sql并行执行的时候,Real-Time SQL Monitoring会自动启动. 可以通过视图v$sql_monitor.v$sql_plan_monitor来查看sql语句运行时的统计信息. 在结合以下视图,可以获取更多的信息: v$active_session_history.v$session.v$session_longops.v$sql.v$…
解释计划 与 执行计划的 区别 随着可以得到解释计划输出的开发工具, 比如 toad 的普遍使用, 生成解释计划就变的相当简单. 而不简单的是得到执行计划. 解释计划 EXPLAIN PLAN 用来显示优化器为SQL语句所选择的执行计划. 你需要了解一件事, 当你得到了解释计划输出的时候, 你其实是得到了当SQL语句执行的时候应该采用的预期执行计划. 你并没有得到实际的执行计划以及与其相关的数据源执行统计信息. 你所得到的只是估计值, 而不是实际值. 在下面, 我将通过将估计的信息成为解释计划输…
SELECT * FROM V$SESSION WHERE USERNAME IS NOT NULL AND STATUS = 'ACTIVE' ORDER BY LOGON_TIME, SID; 1.查询会话 SELECT P.SPID, S.SID, S.OSUSER, S.MACHINE, S.PROGRAM, S.LOGON_TIME, Q.MODULE, S.SERIAL#, Q.SQL_ID, Q.SQL_TEXT, Q.SQL_FULLTEXT FROM V$PROCESS P I…
构建实验数据 --使用NC50用户查询(会话1) SQL> conn NC50/NC50 Connected. SQL> create table emp as select * from scott.emp; Table created. SQL SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- ---------…
0x01 背景 现在的WEB应用对SQL注入的防护基本都是判断GPC是否开启,然后使用addlashes函数对单引号等特殊字符进行转义.但仅仅使用这样的防护是存在很多盲点的,比如最经典的整型参数传递,也即被带入数据库查询的参数是整型.数组中的key没过滤被带入了查询以及全局过滤了GET.POST但没过滤SERVER或COOKIE引发的注入.所以看似有全局防护,实则隐藏了很多“后门”-盲点如下:①注入点类似id=1这种整型的参数就会完全无视GPC的过滤:②注入点包含键值对的,那么这里只检测了val…
在分析SQL性能的时候,经常需要确定资源消耗多的SQL,总结如下: 1 查看值得怀疑的SQLselect substr(to_char(s.pct, '99.00'), 2) || '%' load,       s.executions executes,       p.sql_text  from (select address,               disk_reads,               executions,               pct,          …