[作者:阿提什·戈斯瓦米]{class="badge informative" title="Atish Goswami"} [僅限PaaS]{class="badge informative" title="僅適用於雲端專案(Adobe管理的PaaS基礎結構)和內部部署專案的Adobe Commerce 。"}
設定資料庫分析工具
Commerce資料庫分析工具會顯示頁面上實作的所有查詢,包括每個查詢的時間以及套用的引數。
步驟1:修改部署設定
修改<magento_root>/app/etc/env.php以新增下列對資料庫分析工具類別的參考:
'profiler' => [
'class' => '\Magento\Framework\DB\Profiler',
'enabled' => true,
],
範例如下:
'db' =>
array (
'table_prefix' => '',
'connection' =>
array (
'default' =>
array (
'host' => 'localhost',
'dbname' => 'magento',
'username' => 'magento',
'password' => 'magento',
'model' => 'mysql4',
'engine' => 'innodb',
'initStatements' => 'SET NAMES utf8;',
'active' => '1',
'profiler' => [
'class' => '\Magento\Framework\DB\Profiler',
'enabled' => true,
],
),
),
),
步驟2:設定輸出
在您的Commerce應用程式啟動程式檔案中設定輸出;這可能是<magento_root>/pub/index.php或它可能位於Web伺服器虛擬主機設定中。
下列範例會在三欄表格中顯示結果:
- 總時間(顯示頁面上執行所有查詢的總時間)
- SQL (顯示所有SQL查詢;資料列標題顯示查詢計數)
- 查詢引數(顯示每個SQL查詢的引數)
若要設定輸出,請在啟動程式檔案的$bootstrap->run($app);行後面新增下列內容:
/** @var \Magento\Framework\App\ResourceConnection $res */
$res = \Magento\Framework\App\ObjectManager::getInstance()->get('Magento\Framework\App\ResourceConnection');
/** @var Magento\Framework\DB\Profiler $profiler */
$profiler = $res->getConnection('read')->getProfiler();
echo "<table cellpadding='0' cellspacing='0' border='1'>";
echo "<tr>";
echo "<th>Time <br/>[Total Time: ".$profiler->getTotalElapsedSecs()." secs]</th>";
echo "<th>SQL [Total: ".$profiler->getTotalNumQueries()." queries]</th>";
echo "<th>Query Params</th>";
echo "</tr>";
foreach ($profiler->getQueryProfiles() as $query) {
/** @var Zend_Db_Profiler_Query $query*/
echo '<tr>';
echo '<td>', number_format(1000 * $query->getElapsedSecs(), 2), 'ms', '</td>';
echo '<td>', $query->getQuery(), '</td>';
echo '<td>', json_encode($query->getQueryParams()), '</td>';
echo '</tr>';
}
echo "</table>";
步驟3:檢視結果
前往店面或管理員中的任何頁面來檢視結果。 範例如下:
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c