Kolega iš "CleverCode" neseniai rekomendavo įrankį, skirtą analizuoti sql teiginius MySQL, profiliavimą, ir nustatė, kad šis įrankis yra labai geras, kuris gali tiksliai išanalizuoti, kur konkretus laikas, praleistas SQL teiginiams užklausos proceso metu. "CleverCode" apibendrina tai čia ir dalijasi su jumis.
1 Įvadas
"MySQL" užklausų profiliuotojas yra labai patogus užklausų diagnostikos analizės įrankis, per kurį galite gauti kelių išteklių sunaudojimą visame užklausos vykdymo procese, pvz., CPU, IO, IPC, SWAP ir kt., taip pat PUSLAPIO GEDIMŲ, KONTEKSTO JUNGIKLIO ir kt. atsiradimą, taip pat gauti kiekvienos funkcijos, kurią MySQL iškviečia, vietą šaltinio faile vykdant užklausą.
"MySQL" 5.0.37 ar naujesnė versija palaiko PROFILING derinimo funkciją, kuri leidžia suprasti išsamią informaciją apie SQL sakinių sunaudotus išteklius. Kadangi reikia iškviesti sistemos getrusage() funkciją, ją galima naudoti tik Linux/Unix klasės platformose, o ne Windows. Be to, PROFILING skirtas procesams, o ne gijoms apdoroti, o kitos serverio programos gali turėti įtakos jūsų derinimo rezultatams, todėl šis įrankis tinka derinimui kūrimo metu, o jei norite derinti gamybos aplinkoje, turėtumėte atkreipti dėmesį į jo apribojimus.
2 Operacija
2.1 Patikrinkite, ar profilis įjungtas, jis išjungtas pagal numatytuosius nustatymus.
2.2 Įgalinti profiliavimą. Kintamasis profiliavimas yra vartotojo kintamasis, kurį kiekvieną kartą reikia įjungti iš naujo.
2.3 Vykdykite šiuos teiginius: Norint išvengti anksčiau saugomo SQL QCACHE, rekomenduojama priversti SELECT sakinį neatlikti QCACHE aptikimo vykdant SQL. Tai leidžia pateikti analizės tikslumą.
2.4 NaudojimasRodyti profilio užklausąNaujausiasIšrašo vykdymo informacija。 (Analizė: pasirinkite sql_no_cache skaičių(*) iš system_user, kur amžius > 20 metų)
2.5 Rodyti profilius. Peržiūrėti serveryje vykdomų sakinių sąrašą. (užklausos ID, praleistas laikas, pareiškimas).
2.6 Naudokite show profile, kad užklaustumėte formulės ID vykdymo informacijos. Čia analizuojame pareiškimą su ID 6. (Analizė: pasirinkite sql_no_cache skaičių(*) iš system_user, kurioje amžius > 20 metų).
2.7 Gaukite procesoriaus ir bloko IO suvartojimą.
2.8 Papildomos informacijos gavimas. galima gauti atliekant "SHOW PROFILE *** FOR QUERY n". Nuorodos adresas: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|