Magento SQL Profiler

Veröffentlicht am 07.08.2010 von jkuensebeck in der Schublade Magento | Tags: , , , | 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());

Ein Kommentar zu “Magento SQL Profiler”

  1. 1 René Penner sprach am 18.08.2010 um 15:40:

    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é