जवाबों:
यदि आप सुनिश्चित करना चाहते हैं कि सभी SQL वास्तव में लॉग इन हैं, तो मैं तीसरे पक्ष के सॉफ़्टवेयर का उपयोग करने का सुझाव देता हूं:
वैकल्पिक रूप से एक देशी Magento / वेरिएन दृष्टिकोण निम्नलिखित हो सकता है:
lib/Varien/Db/Adapter/Pdo/Mysql.php
true
(लाइन 103)var/debug/pdo_mysql.log
यहां लाइन बदलनी होगी: (टिप्पणियाँ स्वयं व्याख्यात्मक हैं)
/**
* Write SQL debug data to file
*
* @var bool
*/
protected $_debug = true;
/**
* Minimum query duration time to be logged
*
* @var float
*/
protected $_logQueryTime = 0.05;
/**
* Log all queries (ignored minimum query duration time)
*
* @var bool
*/
protected $_logAllQueries = true;
/**
* Add to log call stack data (backtrace)
*
* @var bool
*/
protected $_logCallStack = true;
उत्पादित लॉग निम्न की तरह हैं:
## 2014-06-26 12:18:47
## 10258 ## QUERY
SQL: SELECT `adminnotification_inbox`.* FROM `adminnotification_inbox` WHERE (title = 'Customize your order and invoice numbers to protect your sales using Order Number Customizer by XTENTO.') AND (url = 'http://www.xtento.com/magento-extensions/order-number-customizer.html?utm_source=feed&utm_medium=feed&utm_campaign=order_number_customizer')
AFF: 1
TIME: 0.0008
यदि आपने सक्षम किया है तो आपके पास $_logCallStack
एक TRACE parte भी होगा
TRACE: #1 Varien_Db_Adapter_Pdo_Mysql#00000000644036ff00007f14137095e6#->_debugStat(2, 'SELECT `adminnot...', array(), &Varien_Db_Statement_Pdo_Mysql#000000006440371700007f14137095e6#) called at [lib/Varien/Db/Adapter/Pdo/Mysql.php:424]
#2 Varien_Db_Adapter_Pdo_Mysql#00000000644036ff00007f14137095e6#->query(&Varien_Db_Select#000000006440371800007f14137095e6#, array()) called at [lib/Zend/Db/Adapter/Abstract.php:753]
#3 Varien_Db_Adapter_Pdo_Mysql[Zend_Db_Adapter_Abstract]#00000000644036ff00007f14137095e6#->fetchRow(&Varien_Db_Select#000000006440371800007f14137095e6#) called at [app/code/core/Mage/AdminNotification/Model/Resource/Inbox.php:116]
#4 Mage_AdminNotification_Model_Resource_Inbox#00000000644034c500007f14137095e6#->parse(&Mage_AdminNotification_Model_Inbox#00000000644034e900007f14137095e6#, array(array('severity' => 4, 'date_added' => '2013-10-23 13:00...', 'title' => 'Customizing your...', 'description' => 'Easily add new c...', 'url' => 'http://www.xtent...'), array('severity' => 4, 'date_added' => '2014-04-09 17:00...', 'title' => 'Customize your o...', 'description' => 'Customize your M...', 'url' => 'http://www.xtent...'), array('severity' => 4, 'date_added' => '2014-05-06 17:00...', 'title' => 'Process orders i...', 'description' => 'Process all your...', 'url' => 'http://www.xtent...'))) called at [app/code/core/Mage/AdminNotification/Model/Inbox.php:118]
#5 Mage_AdminNotification_Model_Inbox#00000000644034e900007f14137095e6#->parse(array(array('severity' => 4, 'date_added' => '2013-10-23 13:00...', 'title' => 'Customizing your...', 'description' => 'Easily add new c...', 'url' => 'http://www.xtent...'), array('severity' => 4, 'date_added' => '2014-04-09 17:00...', 'title' => 'Customize your o...', 'description' => 'Customize your M...', 'url' => 'http://www.xtent...'), array('severity' => 4, 'date_added' => '2014-05-06 17:00...', 'title' => 'Process orders i...', 'description' => 'Process all your...', 'url' => 'http://www.xtent...'))) called at [app/code/local/Xtento/XtCore/Model/Feed.php:57]
#6 Xtento_XtCore_Model_Feed#000000006440348500007f14137095e6#->checkUpdate(&Varien_Event_Observer#00000000644034d900007f14137095e6#) called at [app/code/core/Mage/Core/Model/App.php:1338]
#7 Mage_Core_Model_App#00000000644036ef00007f14137095e6#->_callObserverMethod(&Xtento_XtCore_Model_Feed#000000006440348500007f14137095e6#, 'checkUpdate', &Varien_Event_Observer#00000000644034d900007f14137095e6#) called at [app/code/core/Mage/Core/Model/App.php:1317]
#8 Mage_Core_Model_App#00000000644036ef00007f14137095e6#->dispatchEvent('controller_actio...', array('controller_actio...' => &Fishpig_Wordpress_Adminhtml_WordpressController#000000006440364a00007f14137095e6#)) called at [app/Mage.php:451]
#9 Mage::dispatchEvent('controller_actio...', array('controller_actio...' => &Fishpig_Wordpress_Adminhtml_WordpressController#000000006440364a00007f14137095e6#)) called at [app/code/core/Mage/Core/Controller/Varien/Action.php:528]
#10 Fishpig_Wordpress_Adminhtml_WordpressController[Mage_Core_Controller_Varien_Action]#000000006440364a00007f14137095e6#->preDispatch() called at [app/code/core/Mage/Adminhtml/Controller/Action.php:160]
#11 Fishpig_Wordpress_Adminhtml_WordpressController[Mage_Adminhtml_Controller_Action]#000000006440364a00007f14137095e6#->preDispatch() called at [app/code/core/Mage/Core/Controller/Varien/Action.php:408]
#12 Fishpig_Wordpress_Adminhtml_WordpressController[Mage_Core_Controller_Varien_Action]#000000006440364a00007f14137095e6#->dispatch('checkVersion') called at [app/code/core/Mage/Core/Controller/Varien/Router/Standard.php:250]
#13 Mage_Core_Controller_Varien_Router_Admin[Mage_Core_Controller_Varien_Router_Standard]#00000000644036ae00007f14137095e6#->match(&Mage_Core_Controller_Request_Http#000000006440365c00007f14137095e6#) called at [app/code/core/Mage/Core/Controller/Varien/Front.php:176]
#14 Mage_Core_Controller_Varien_Front#000000006440365700007f14137095e6#->dispatch() called at [app/code/core/Mage/Core/Model/App.php:354]
#15 Mage_Core_Model_App#00000000644036ef00007f14137095e6#->run(array('scope_code' => '', 'scope_type' => 'store', 'options' => array())) called at [app/Mage.php:687]
#16 Mage::run('', 'store') called at [index.php:87]
अपने में निम्नलिखित नोड के साथ Zend SQL Profiler सक्रिय करें app/etc/local.xml
<resources>
<default_setup>
<connection>
<profiler>1</profiler>
तब आप अपने कोड में प्रोफाइलर को कहीं भी एक्सेस कर सकते हैं और सभी निष्पादित प्रश्नों के बारे में बहुत सारी जानकारी प्राप्त कर सकते हैं:
$profiler = Mage::getSingleton('core/resource')->getConnection('core_write')->getProfiler();
बस सभी प्रश्नों का उत्पादन करने के लिए:
print_r($profiler->getQueryProfiles());
आप index.php
प्रत्येक पृष्ठ के नीचे सभी प्रश्नों को देखने के लिए इन दो पंक्तियों को जोड़ सकते हैं । ध्यान रखें कि यह AJAX अनुरोधों को तोड़ देगा जो JSON प्रतिक्रिया देता है, इसलिए आप उन्हें इस कोड के साथ, फिर से प्रिंट करने के बजाय प्रश्नों को लॉग करने पर विचार कर सकते हैं (फिर से, इसे अंत में जोड़ें index.php
):
$profiler = Mage::getSingleton('core/resource')->getConnection('core_write')->getProfiler();
Mage::log(print_r($profiler->getQueryProfiles(), true), null, 'queries.log', true);
फिर आपको सभी प्रश्न मिलेंगे var/log/queries.log
डिबगिंग समाप्त करने के बाद फिर से लाइनें निकालना न भूलें!
मुझे यकीन नहीं है कि यह 100% हर क्वेरी को पकड़ लेगा, लेकिन अधिकांश क्वेरी पद्धति Zend_Db_Adapter_Abb क्वेरी के माध्यम से चलती है
lib / Zend / DB / एडाप्टर / Abstract.php
इसे ध्यान में रखते हुए, आप अस्थायी रूप से कुछ डिबगिंग स्टेटमेंट्स जोड़ सकते हैं (एक कॉपी में जो आप बनाते हैं
एप्लिकेशन / कोड / स्थानीय / दाना
सुरक्षित रहने के लिए)
public function query($sql, $bind = array())
{
// connect to the database if needed
$this->_connect();
// is the $sql a Zend_Db_Select object?
if ($sql instanceof Zend_Db_Select) {
if (empty($bind)) {
$bind = $sql->getBind();
}
$sql = $sql->assemble();
}
echo '$sql' . "\n<br />\n";
var_dump($bind);
यदि आपके पास mysql सर्वर तक पहुंच है और आपके पास अन्य प्रोजेक्ट नहीं हैं जो क्वेरी चलाते हैं, तो आप mysql से सामान्य लॉग को जोड़ने का प्रयास कर सकते हैं। यहां देखें कि कैसे करें कि /programming/6479107/how-to-enable-mysql-query-log क्योंकि यह सभी प्रश्न लिखता है कि लॉग फ़ाइल बहुत तेजी से बड़ी हो सकती है, इसलिए इसे चालू करना सुनिश्चित करें जब आप इसके साथ कर लें, तो इसे बंद कर दें।