當前位置:首頁 » 編程語言 » yii獲取執行的sql

yii獲取執行的sql

發布時間: 2024-05-18 05:08:12

『壹』 yii2怎麼連接sql server

在saas中,多租戶資料庫分庫管理時常常需要自定義資料庫鏈接,並且需要支持在框架載入後再調用資料庫連接。

Yii2 如何定義資料庫連接要注意的是:

即除了使用/Yii::app−>set()外,還需要再多使用下面一句話:/Yii::app->$database->open();
因為在框架載入後再調用時,yii本身並不會幫打開連接。使用如下代碼:

php"><?php/***User:chenlb*/namespacebackend/moles/monitorMysql/controllers/show;classAllDatabasesextends/yii/base/Action{privatestatic$_conn=[];publicfunctionrun(){//CreateTestDBConnection$db=$this->getDb('資料庫名稱');var_mp($db->getSchema()->getTableSchema('log')->columns['id']->isPrimaryKey);exit;}/***得到資料庫連接*/publicfunctiongetDb($database){if(!isset(self::$_conn[$database])){$connInfo=['class'=>'yii/db/Connection','dsn'=>'mysql:host=HOST_IP;port=3307;dbname='.$database,'username'=>'username','password'=>'password','charset'=>'utf8'];/Yii::$app->set($database,$connInfo);/Yii::$app->$database->open();self::$_conn[$database]=/Yii::$app->$database;}returnself::$_conn[$database];}}

『貳』 yii 中如何輸出剛剛執行的完整的sql語句

1.修改main.php,加入如下代碼:
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning,trace',
),
// 以下是新加
array( // configuration for the toolbar
'class'=>'XWebDebugRouter',
'config'=>'alignLeft, opaque, runInDebug, fixedPos, collapsed, yamlStyle',
'levels'=>'error, warning, trace, profile, info',
//'categories' => 'system.db.*',
'allowedIPs'=>array('127.0.0.1','::1','192.168.1[0-5].[0-9]{3}','如果程序在外網需要填入你的公網的ip'),
),

),
)
2.db鏈接的配置裡面做下修改:
'db'=>array(
'connectionString'=>'mysql:host=*.*.*.*;dbname=test',
'emulatePrepare'=>true, // 加入
'enableParamLogging' => true, // 加入
'username'=>'-----',
'password'=>'---',
'charset'=>'utf8',
'schemaCachingDuration'=>'0',
'autoConnect'=>false,
),
3.完成

『叄』 怎麼獲取執行的sql語句

1、select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr = b.addr and a.machine='yz';
PID SID SERIAL# MACHINE

9497 49 3406 yz
2、利用10046事件開始跟蹤

SQL>execute sys.dbms_system.set_ev(49, 3406,10046,1,'');
PL/SQL procere successfully completed.

、這時候你可以運行應用程序,對於web 應用你就可以打開你認為性能比較差頁面。

4、如果你要查看這段時間執行了哪些sql語句,可以執行下面的語句結束跟蹤

SQL>execute sys.dbms_system.set_ev(49,3406,10046,0,'');

PL/SQL procere successfully completed.

5、SQL trace 工具會收集這個過程中執行的SQL的性能狀態數據,記錄到一個跟蹤文件中.這個跟蹤文件提供了許多有用的信息,例如解析次數.執行次數,CPU使用時間等。

6、這時候你可以通過下面的語句獲得產生的跟蹤文件所在的目錄

SQL> select value from v$parameter where name = 'user_mp_dest';

VALUE

--------------------------------------------------------------------------------

/opt/oracle/admin/ocn/ump

7、在/opt/oracle/admin/ocn/ump下找到yzoracle_ora_9497.trc。9497是你當前應用的spid。

8、注意yzoracle_ora_9497.trc是不可讀的,我們需要執行oracle的tkprof命令,將yzoracle_ora_9497.trc轉化為我們可讀的文本文件。

tkprof yzoracle_ora_9497.trc yzoracle_ora_9497.sql

這樣你就可以在yzoracle_ora_9497.sql文件中看到所有的sql語句執行次數,CPU使用時間等數據。

『肆』 Yii2鎬庝箞鎵ц屽師鐢焥ql璇鍙ユ煡璇

Yii2鎬庝箞鎵ц屽師鐢焥ql璇鍙
鎵ц岋細
Yii::$app->getDb()->createCommand("Your SQL")->execute();
鏌ヨ錛
Yii::$app->getDb()->createCommand("Your SQL")->queryAll();
鍏朵粬錛
Yii::$app->getDb()->createCommand("Your SQL")->xxx

『伍』 鎬庝箞鑾峰彇exec(@sql)鐨勬墽琛岀粨鏋

exec(@sql)鎵ц屽悗錛岀粨鏋滃氨浼氭樉紺哄湪緇撴灉鏍忛噷銆

涓句緥錛

浠g爜濡備笅

declare@tablenamevarchar(20)
declare@sqlvarchar(2000)
set@tablename='test'
set@sql='select*from'+@tablename+''
exec(@sql)

鎵ц岀粨鏋滐細

『陸』 yii2.0 怎麼列印自動生成的創建sql語句

在config/main.php中

'components'=>array(

'db'=>array(

'enableParamLogging' => true,//增加這行
),

'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'trace, info error, warning', //日誌標准增加trace, info
),
),
),

)

在你的application.log中可以直接查看, 另外一種方法,也是最方便的就是安裝debugtoolbar擴展,開發必備.

熱點內容
稅盤密碼忘了去改需要帶什麼 發布:2024-11-27 15:41:10 瀏覽:276
拉筋要加密 發布:2024-11-27 15:38:51 瀏覽:323
電腦當伺服器怎麼降低功耗 發布:2024-11-27 15:30:45 瀏覽:641
蘋果手機誇克緩存的視頻怎麼轉為本地視頻 發布:2024-11-27 15:24:05 瀏覽:810
linuxm4 發布:2024-11-27 15:15:12 瀏覽:321
演算法交易現狀 發布:2024-11-27 15:05:49 瀏覽:825
搜同網伺服器為什麼登錄不上 發布:2024-11-27 15:05:41 瀏覽:287
如何讓無線網速變快華為安卓手機 發布:2024-11-27 15:04:13 瀏覽:595
cod17編譯著色器卡住c盤滿了 發布:2024-11-27 14:55:56 瀏覽:386
鎖機軟體反編譯 發布:2024-11-27 14:36:02 瀏覽:148