Ogólnie chciałem zrobić skrypt, któremu na wejście podawałbyś jakieś konkretne zapytanie wyrwane z systemu/aplikacji.
Skrypt profilowałby to zapytanie, wykonywał je, sprawdzał wyniki i wyświetlał odpowiednie info o wydajności.
Dodatkowo analizowałby samo zapytanie pod kątem:
- poprawnych indeksów - użyte pola w WHERE, ON, GROUP BY, ORDER BY,
- użycia funkcji w wyżej wymienionych klauzulach, które to powodują ignorowanie indeksów,
- analizował LIKE,
- sprawdzał rozmiary tabel tymczasowych tworzonych przy joinach i wskazywał na przeniesienie warunków dotyczących joinowanej tabeli z WHERE do ON w celu ograniczenia wielkości tych tymczasowych tabel,
- itp.
Pokazywałby z tego raport i dodatkowo poprawione zapytanie, które mu podaliśmy a także aktualizacje struktury (DROPy, ALTERy, CREATEy itp) która poustawiała by indeksy itp.
Choć znam się na rzeczy i sam wiem jak powinno wyglądać optymalne zapytanie i mam pomysły jak zrobić profilowanie oraz podpowiadanie to padłem właśnie na parsowaniu samego zapytania (od razu wziąłem sobie dość obszerne by niczego nie pominąć i poległem

)
Mozliwe by wówczas też było autonaprawianie struktury bazy przez skrypt. I tak musi on mieć dostęp do bazy by analizować tabele szukając indeksów itd. więc przy okazji by mogłobyć i to wykonywane.
EDIT: no właśnie i co bym chciał osiągnać? Skrypt/aplikację która podpięta pod naszą aplikację, automatycznie pokazałaby nam co poprawić, lub wskazała na co zwrócić uwagę.