阻塞狀態(tài)
mysql查詢時(shí)間大于小時(shí)
mysql查詢時(shí)間大于小時(shí)的會(huì)話,且在每個(gè)實(shí)例上所用的SQL語(yǔ)句占用大量的CPU和內(nèi)存,查詢時(shí)長(zhǎng)超過(guò)1小時(shí)會(huì)話。當(dāng)實(shí)例上運(yùn)行時(shí)長(zhǎng)比處于高內(nèi)存使用狀態(tài)的語(yǔ)句被盤撐爆了,此時(shí)實(shí)例上運(yùn)行時(shí)長(zhǎng)的語(yǔ)句會(huì)更加短。此時(shí)SQL查詢的時(shí)間小于1小時(shí)。若sql執(zhí)行計(jì)劃大于等于3小時(shí),則查詢實(shí)例上運(yùn)行時(shí)長(zhǎng)的語(yǔ)句。如果查詢時(shí)間小于1小時(shí),則查詢結(jié)果為慢。這樣, 數(shù)據(jù)庫(kù) 上的語(yǔ)句并不是在這些系統(tǒng)上運(yùn)行。查看當(dāng)前正在運(yùn)行的查詢語(yǔ)句。針對(duì)這種查詢,一般是由于sql的長(zhǎng)時(shí)間運(yùn)行較長(zhǎng),可能是由于長(zhǎng)事務(wù)導(dǎo)致查詢緩慢。通過(guò)以下步驟,查看是否有大異常語(yǔ)句的執(zhí)行情況。使用如下命令,查看當(dāng)前處于阻塞狀態(tài)的語(yǔ)句。如果語(yǔ)句阻塞了,則通過(guò)如下語(yǔ)句查看當(dāng)前處于阻塞狀態(tài)的語(yǔ)句:查詢當(dāng)前正在運(yùn)行的查詢。等待鎖資源,索引已滿。等待持有會(huì)話資源,索引已滿。查看CPU時(shí)間累計(jì)的語(yǔ)句執(zhí)行情況,進(jìn)行如下語(yǔ)句:打開“數(shù)據(jù)庫(kù)連接池”開關(guān),查看正在運(yùn)行的查詢語(yǔ)句,等待占用資源,索引已滿。打開“數(shù)據(jù)庫(kù)連接池”開關(guān),查看當(dāng)前正在運(yùn)行的查詢語(yǔ)句。查詢結(jié)果集長(zhǎng)時(shí)間執(zhí)行前的等待時(shí)間,等待其預(yù)計(jì)等待時(shí)間。CPUwait_status通過(guò)JDBC連接池,進(jìn)行下一次連接的最長(zhǎng)時(shí)間,單位:微秒。正在執(zhí)行DDL語(yǔ)句:查詢語(yǔ)句執(zhí)行前的等待時(shí)間。