Magento SQL Profiler
Veröffentlicht am 07.08.2010 von jkuensebeck in der Schublade Magento | Tags: einzeiler, performance, profiler, sql | Ein Kommentar »Magento (bzw. wir das Zend-Framework) hat einen eingebauten SQL-Profiler im Gepäck, um diesen zu aktivieren einfach in der local.xml im Connection-Knoten folgende Zeile ergänzen:
<resources> <db> <table_prefix><![CDATA[]]></table_prefix> </db> <default_setup> <connection> <host><![CDATA[localhost]]></host> <username><![CDATA[root]]></username> <password><![CDATA[]]></password> <dbname><![CDATA[magento_test]]></dbname> <active>1</active> <profiler>1</profiler> </connection> </default_setup> </resources>
Nachdem man einmal den Cache gelöscht hat erscheint unterhalb des regulären Profilers ein neuer Bereich mit ein paar wenigen Infos, unter anderem wird auch die langsamste SQL-Query ausgegeben. Wie nützlich das in der Praxis ist muss man sehen, wem die Ausgabe zu langweilig ist, der kann sich per
$profiler = Mage::getSingleton('core/resource')->getConnection('core_write')->getProfiler();
auch das ganze Zend_Db_Profiler – Objekt mit allen SQL-Queries und Laufzeiten heranholen und die Infos selber besser aufbereiten, z.B im einfachsten Fall so
print_r($profiler->getQueryProfiles());
oder noch einfacher per
Mage::log($profiler) ;
in das system.log schreiben lassen … und wenn man dann noch ne shell hat einfach noch per tail -f ausgeben lassen …
Gruß
René