SHOW PROCESSLIST'ten tam sorguyu görme


296

SHOW PROCESSLIST sorgusu yayınladığımda, bilgi sütununda çalışan SQL sorgusunun yalnızca ilk 100 karakteri döndürülür.

Mysql yapılandırmasını değiştirmek veya tam sorguyu görmek için farklı türde bir istek vermek mümkün mü (baktığım sorgular 100 karakterden uzun)

Yanıtlar:


483
SHOW FULL PROCESSLIST

Kullanmazsanız FULL, " Infoalanda her ifadenin yalnızca ilk 100 karakteri gösterilir " .

PhpMyAdmin kullanırken, kesilmemiş sonuçları görmek için "Tam metinler" seçeneğini (sonuç tablosunun sol üst köşesindeki "← T →") da tıklamanız gerekir.


3
Görünüşe göre phpmyadmin bunu umursamıyor ve hala kesilmiş bilgileri gösteriyor.
giorgio79

@ giorgio79: Doğru hatırlıyorsam, phpMyAdmin tüm dize sonuçlarını keser. Bununla birlikte, herhangi bir web geliştirme yaptığımdan bu yana dört yıl geçti, bu yüzden çok iyi yanılıyorum.
James McNellis

2
Kullanırken bile belirli bir süre sonra sorguların kesildiğini görüyorum SHOW FULL PROCESSLIST. Bir şekilde daha dolgun yapabilir miyim?
wizonesolutions

komutanın sonunda SHOW FULL PROCESSLISTbir noktalı virgül gerekiyor ;mu?
Rakibul Haq

1
@ R.Haq Yapacağınız tek sorgu bu ise noktalı virgül gerekli değildir. Birden fazla sorgu yapmak istiyorsanız, her birinin ardından noktalı virgül kullanmanız gerekir.
Julio Garcia

85

İşlem Listesini Göster başka bir tablodan bilgi getirir. Verileri nasıl çekebileceğiniz ve tüm sorguyu içeren 'INFO' sütununa bakabilirsiniz:

select * from INFORMATION_SCHEMA.PROCESSLIST where db = 'somedb';

İhtiyacınıza göre herhangi bir koşul ekleyebilir veya yok sayabilirsiniz.

Sorgunun çıktısı şu şekilde sonuçlanır:

+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
| ID    | USER | HOST            | DB     | COMMAND | TIME | STATE     | INFO                                                     |
+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
|     5 | ssss | localhost:41060 | somedb | Sleep   |    3 |           | NULL                                                     |
| 58169 | root | localhost       | somedb | Query   |    0 | executing | select * from sometable where tblColumnName = 'someName' |

12
Bu muhtemelen en yararlı cevaptır.
dr_

Bilgi sütunum gösteriliyor COMMIT. Gerçek sorgu hakkında daha fazla ayrıntıyı nasıl görüntüleyebileceğimi biliyor musunuz?
m.spyratos

localhost: 41060, 41060 ne anlama geliyor? Herhangi Bir tahmin ?
Farveen Hassan

12

Sadece okumak MySQL belgelerine bu SHOW FULL PROCESSLISTvarsayılan olarak yalnızca konuları listeleyen mevcut kullanıcı bağlantısından .

MySQL SHOW FULL PROCESSLIST belgelerinden alıntı:

PROCESS ayrıcalığına sahipseniz, tüm konuları görebilirsiniz.

Böylece tablonuzdaki Process_privsütunu etkinleştirebilirsiniz mysql.user. FLUSH PRIVILEGESDaha sonra çalıştırmayı unutmayın :)


12

SHOW PROCESSLIST'ten tam sorguyu görün:

SHOW FULL PROCESSLIST;

Veya

 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;

10

Bir kabuk oturumunda güncellenmiş işlemleri (örnekte 2 saniye) el ile etkileşime girmek zorunda kalmadan tutmak istiyorsanız şunu kullanın:

watch -n 2 'mysql -h 127.0.0.1 -P 3306 -u some_user -psome_pass some_database -e "show full processlist;"'

Bununla ilgili tek kötü şey show [full] processlist, çıktı sonucunu filtreleyememenizdir. Öte yandan, SELECT * FROM INFORMATION_SCHEMA.PROCESSLISTgörmek istemediğiniz herhangi bir şeyi çıktıdan çıkarmak için açık olasılıkların verilmesi :

SELECT * from INFORMATION_SCHEMA.PROCESSLIST
WHERE DB = 'somedatabase'
AND COMMAND <> 'Sleep'
AND HOST NOT LIKE '10.164.25.133%' \G
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.