執行sql語句 檢視SQL語句執行進度資訊

2021-10-14 17:46:04 字數 1485 閱讀 8494

有時候我們跑乙個語句,若修改大表或查詢量很大時候,不知道執行到什麼程度了,什麼時候能執行完成,在5.7版後可以查詢sys.session來觀察

select * from sys.session where conn_id != connection_id();
模擬對乙個大表執行了alter操作

alter table ytest.data_million_large change d d varchar(220);

ps: 這邊有個地兒感興趣的小夥伴可以去了解下,將字段d修改為 varchar(220) 以下,例如 varchar(200),這個會觸發copy,執行會非常慢,而若將值改大,例如 varchar(2000),執行會非常快,修改元資料。【表字符集 utf8】
mysql> select * from sys.session where conn_id != connection_id() g

*************************** 1. row ***************************

thd_id: 2560

conn_id: 2534

user: [email protected]

db: sys

command: query

state: copy to tmp table

time: 54

current_statement: alter table ytest.data_million_large change d d varchar(220)

statement_latency: 55.04 s

progress: 21.78 ## 執行的百分比

lock_latency: 39.49 ms

rows_examined: 0

rows_sent: 0

rows_affected: 0

tmp_tables: 0

tmp_disk_tables: 0

full_scan: no

last_statement: null

last_statement_latency: null

current_memory: 4.29 mib

last_wait: null

last_wait_latency: null

source: null

trx_latency: null

trx_state: null

trx_autocommit: null

pid: null

program_name: null

1 row in set (15.10 sec)

檢視sql語句的執行計畫

explain plan 是乙個很好的分析sql語句的工具,它甚至可以在不執行sql的情況下分析語句.通過分析,我們就可以知道oracle是怎麼樣連線表,使用什麼方式掃瞄表 索引掃瞄或全表掃瞄 以及使用到的索引名稱.你需要按照從裡到外,從上到下的次序解讀分析的結果.explain plan分析的結果...

mysql檢視SQL語句執行效率

主要用explain命令去檢視 語法 explain select from where 例如 explain select from city 結果如下 idselect type table type possible keys keykey len refrows extra 1 city a...

SQL SERVER如何檢視sql語句執行的時間

1.第一種測試方法 declare begin datetime,end datetime set begin getdate 你所要測試的sql語句 set end getdate print datediff millisecond,begin,end 1000.0 單位 s 2.另一種測試方法...