精华内容
下载资源
问答
  • oracle查询正在执行的sql

    千次阅读 2018-11-22 18:13:42
    1.oracle查询正在执行的sql SELECT b.sid oracleID,  b.username 登录Oracle用户名,  b.serial#,  spid 操作系统ID,  paddr,  sql_text 正在执行的SQL,  b.machine 计算机名 FROM v$pr...

    sql执行时间太久,要kill

    1.oracle查询正在执行的sql

    SELECT b.sid oracleID,
           b.username 登录Oracle用户名,
           b.serial#,
           spid 操作系统ID,
           paddr,
           sql_text 正在执行的SQL,
           b.machine 计算机名
    FROM v$process a, v$session b, v$sqlarea c
    WHERE a.addr = b.paddr
       AND b.sql_hash_value = c.hash_value

    2.查询oracle当前被锁对象

    select a.session_id, c.serial#, a.locked_mode, a.oracle_username, a.os_user_name, c.machine,
           c.terminal, b.object_name, c.logon_time
    from   v$locked_object a, all_objects b, v$session c
    where  a.object_id = b.object_id and a.session_id = c.sid
    order  by c.sid, c.serial#; 

    alter system kill session 'sid, s.serial#‘;

     

     

     

    展开全文
  • 查询正在执行的sql语句

    千次阅读 2018-10-25 09:06:46
    查询正在执行的sql语句 SELECT * FROM information_schema.PROCESSLIST WHERE info IS NOT NULL 查看死否有死锁 SHOW PROCESSLIST; SELECT * FROM information_schema.innodb_trx; SHOW OPEN TABLES WHERE In_...

    查询正在执行的sql语句
    SELECT * FROM information_schema.PROCESSLIST WHERE info IS NOT NULL

     

    查看死否有死锁

    SHOW PROCESSLIST;
    SELECT * FROM information_schema.innodb_trx;
    SHOW OPEN TABLES WHERE In_use > 0;
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

     

     

    【2】information_schema的三个表
    information_schema.innodb_trx–当前运行的所有事务,
    information_schema.innodb_locks–当前出现的锁
    information_schema.innodb_lock_waits–锁等待的对应关系
    ① information_schema.innodb_trx–当前运行的所有事务

    Field    Type    Null    Key    Default    Extra
    trx_id    varchar(18)    NO            事务ID
    trx_state    varchar(13)    NO            事务状态:
    trx_started    datetime    NO        0000-00-00 00:00:00    事务开始时间;
    trx_requested_lock_id    varchar(81)    YES        NULL    innodb_locks.lock_id
    trx_wait_started    datetime    YES        NULL    事务开始等待的时间
    trx_weight    bigint(21) unsigned    NO        0    事务权重
    trx_mysql_thread_id    bigint(21) unsigned    NO        0    事务线程ID
    trx_query    varchar(1024)    YES        NULL    具体SQL语句
    trx_operation_state    varchar(64)    YES        NULL    事务当前操作状态
    trx_tables_in_use    bigint(21) unsigned    NO        0    事务中有多少个表被使用
    trx_tables_locked    bigint(21) unsigned    NO        0    事务拥有多少个锁
    trx_lock_structs    bigint(21) unsigned    NO        0    
    trx_lock_memory_bytes    bigint(21) unsigned    NO        0    事务锁住的内存大小(B)
    trx_rows_locked    bigint(21) unsigned    NO        0    事务锁住的行数
    trx_rows_modified    bigint(21) unsigned    NO        0    事务更改的行数
    trx_concurrency_tickets    bigint(21) unsigned    NO        0    事务并发票数
    trx_isolation_level    varchar(16)    NO            事务隔离级别
    trx_unique_checks    int(1)    NO        0    是否唯一性检查
    trx_foreign_key_checks    int(1)    NO        0    是否外键检查
    trx_last_foreign_key_error    varchar(256)    YES        NULL    最后的外键错误
    trx_adaptive_hash_latched    int(1)    NO        0    
    trx_adaptive_hash_timeout    bigint(21) unsigned    NO        0    
    ② information_schema.innodb_locks–当前出现的锁

    Field    Type    Null    Key    Default    Extra
    lock_id    varchar(81)    NO            锁ID
    lock_trx_id    varchar(18)    NO            拥有锁的事务ID
    lock_mode    varchar(32)    NO            锁模式
    lock_type    varchar(32)    NO            锁类型
    lock_table    varchar(1024)    NO            被锁的表
    lock_index    varchar(1024)    YES        NULL    被锁的索引
    lock_space    bigint(21) unsigned    YES        NULL    被锁的表空间号
    lock_page    bigint(21) unsigned    YES        NULL    被锁的页号
    lock_rec    bigint(21) unsigned    YES        NULL    被锁的记录号
    lock_data    varchar(8192)    YES        NULL    被锁的数据
    ③ information_schema.innodb_lock_waits–锁等待的对应关系

    Field    Type    Null    Key    Default    Extra
    requesting_trx_id    varchar(18)    NO            请求锁的事务ID
    requested_lock_id    varchar(81)    NO            请求锁的锁ID
    blocking_trx_id    varchar(18)    NO            当前拥有锁的事务ID
    blocking_lock_id    varchar(81)    NO            当前拥有锁的锁ID

    在执行第二个update的时候,由于第一个update事务还未提交,故而第二个update在等待,其事务状态为LOCK WAIT    ,等待时间超过innodb_lock_wait_timeout值时,则会报ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction异常。

    在第二个update锁等待超时之后,对第一个update手动提交事务,则第一个update语句成功更新数据库中数据表。

    锁等待递进

    如果是多个锁等待,比如有三个update,update同一行记录,则锁等待关系会层级递进,第二个第三个update都保留对第一个update的锁等待且第三个update保留对第二个update的锁等待,如下图:

    【3】解决办法
    ① 查看并修改变量值

    show GLOBAL VARIABLES like '%innodb_lock_wait_timeout%';

    set GLOBAL innodb_lock_wait_timeout=100;##设置大小值看系统情况

    innodb_lock_wait_timeout指的是事务等待获取资源等待的最长时间,超过这个时间还未分配到资源则会返回应用失败。参数的时间单位是秒,默认值50S。

    ② 找到一直未提交事务导致后来进程死锁等待的进程,并杀掉

    根据锁等待表中的拥有锁的事务id(blocking_trx_id),从innodb_trx表中找到trx_mysql_thread_id值,kill掉。

    如 这里杀掉 进程235:


    select trx_mysql_thread_id from information_schema.innodb_trx it 
    JOIN information_schema.INNODB_LOCK_WAITS ilw 
    on ilw.blocking_trx_id = it.trx_id;

    ##trx_mysql_thread_id: 235


    ③ 优化SQL,优化数据库,优化项目。第一个update未执行完,第二个update就来了,超过等待时间就会报锁等待超时异常。在数据并发项目遇到这种情况概率比较大,这时候就要从项目、数据库、执行SQL多方面入手了。
     

    展开全文
  • PostgreSQL 查询正在执行的sql语句连接信息 --根据oid查询数据库名 SELECT datname FROM pg_database WHERE oid = 16415 -- 查询正在执行的sql语句连接信息 SELECT pid, datname, usename, application_name,...

    PostgreSQL 查询正在执行的sql语句连接信息

    --根据oid查询数据库名
    SELECT datname 
    FROM pg_database 
    WHERE oid = 16415
    
    -- 查询正在执行的sql语句连接信息
    SELECT
        pid,
        datname,
        usename,
        application_name,
        client_addr,
        to_char(backend_start, 'YYYY-MM-DD HH24:MI:SS TZ') AS backend_start,
        state,
        wait_event_type || ': ' || wait_event AS wait_event,
        pg_blocking_pids(pid) AS blocking_pids,
        query,
        to_char(state_change, 'YYYY-MM-DD HH24:MI:SS TZ') AS state_change,
        to_char(query_start, 'YYYY-MM-DD HH24:MI:SS TZ') AS query_start,
        backend_type
    FROM
        pg_stat_activity
    WHERE
        datname = (SELECT datname FROM pg_database WHERE oid = 16415) 
        ORDER BY pid
    
    展开全文
  • SQLServert查询正在执行的SQL 监控后台正在执行的sql kill掉有问题的spidcreate PROC [dbo].[whatsql] AS /*--------------------------------------------------------------------exec whatsql kill 75 kill 76--...

    SQLServer 查询正在执行的SQL

    • 监控后台正在执行的sql
    • kill掉有问题的spid
    
    create PROC [dbo].[whatsql]
    AS
    /*--------------------------------------------------------------------
    
    exec  whatsql
    kill 75 
    kill 76
    
    ---------------------------------------------------------------------*/
    BEGIN
        -- Do not lock anything, and do not get held up by any locks.
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        -- What SQL Statements Are Currently Running?
        SELECT [Spid] = session_Id
    , ecid
    , [Database] = DB_NAME(sp.dbid)
    , [User] = nt_username
    , [Status] = er.status
    , [Wait] = wait_type
    , [Individual Query] = SUBSTRING (qt.text, 
                 er.statement_start_offset/2,
    (CASE WHEN er.statement_end_offset = -1
           THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
    ELSE er.statement_end_offset END - 
                                    er.statement_start_offset)/2)
    ,[Parent Query] = qt.text
    , Program = program_name
    , Hostname
    , nt_domain
    , start_time
        FROM sys.dm_exec_requests er
        INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid
        CROSS APPLY sys.dm_exec_sql_text(er.sql_handle)as qt
        WHERE session_Id > 50              -- Ignore system spids.
        AND session_Id NOT IN (@@SPID)     -- Ignore this current statement.
        ORDER BY 1, 2
    END
    
    
    展开全文
  • 根据Oracle 进程PID来查询正在执行的SQL语句,帮助优化SQL,提高性能以DBA用户登录,执行SELECT /*+ ORDERED */ sql_text FROM v$sqltext...
  • 1、--查询Oracle正在执行和执行过的SQL语句 SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, b.machine 计算机名 FROM v$process a,...
  • 查看 Oracle 正在执行的 sql 语句以及发起的用户 SELECT b.sid oracleID, b.username 用户名, b.serial#, paddr, sql_text 正在执行的SQL, b.machine 计算机名称 FROM v$process a, v$session b, v$...
  • 可以通过以下sql查询Oracle正在执行的sql语句及执行该语句的用户: SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, ...
  • select b.sid, b.username, b.serial#, a.spid, b.paddr, c.sql_text, b.machine from v$process a, v$session b, v$sqlarea c ...干掉正在执行的sql alter system kill session 'sid,serial#'
  • oracle数据库查询正在执行的sql,通过gv$ session 和gv$sqlarea两个视图: select n.sid,n.serial#,n.program,n.terminal,n.logon_time,n.machine,n.sql_id,a.sql_text from gv$session n,gv$sqlarea a where...
  • PostGreSql 查询正在执行的sql语句

    千次阅读 2020-06-12 11:13:21
    查询PostGreSql 正在执行的语句 SELECT procpid, start, now() - start AS lap, current_query FROM (SELECT backendid, pg_stat_get_backend_pid(S.backendid) AS procpid, pg_stat_get_backend_activity...
  • 最近在看项目里大批量数据导入操作,但是涉及数据较多关联其他表也较多时,插入Oracle中时会导致表被锁住,此文记录表被锁住时的查询表状态及正在执行的SQL。 1.以下SQL用于查看当前数据库登陆用户及正在执行的SQL ...
  • select * from information_schema.`PROCESSLIST` where info is not null; 或者 -- use information_schema; -- show processlist;...show processlist 能看到所有库以及用户的执行情况 转载...
  • mysql> SHOW VARIABLES LIKE "general_log%"; +------------------+----------------------------+| Variable_name | Value |+------------------+----------------------------+|...
  • select id, db, user, host, command, time, state, info from information_schema.processlist where command != ‘Sleep’ order by time desc time秒单位
  • plsql 查询正在执行的sql

    千次阅读 2016-12-15 15:05:49
    select a.program, b.spid, c.sql_text  from v$session a, v$process b, v$sqlarea c  where a.paddr = b.ADDR  and a.SQL_hash_value = c.hash_value  and a.userna
  • MySQL查询正在执行的SQL语句

    千次阅读 2019-07-20 10:51:04
    人工智能,零基础入门!http://www.captainbed.net/inner select * from information_schema.`PROCESSLIST` where info is not null;
  • 文章目录1、概述2、语法2.1 增加字段2.2 修改字段2.2.1 数据类型2.2.2 列/表名称2.3 删除字段3、可能遇到问题3.1 将 varchar2 类型改为 clob 类型 1、概述 2、语法 2.1 增加字段 ALTER TABLE <table_name> ...
  • 查询系统正在运行的SQL语句:select a.program,b.spid,c.sql_text from v$session a,v$process b,v$sqlarea c where a.paddr=b.addr and a.sql_hash_value=c.hash_value and a.username is not null;--首先查看有哪些...
  • select sql_text from vsqlareawhere(address,hashvalue)in(select/∗+unnest∗/DECODE(sqlhashvalue,0,prevsqladdr,sqladdress),DECODE(sqlhashvalue,0,prevhashvalue,sqlhashvalue)fromvsqlarea where (address...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,089
精华内容 435
关键字:

查询正在执行的sql