我想列出頁面執行的所有查詢並記錄頁面執行的所有查詢。我正在使用MYSQL。誰能幫我這個?如何統計在asp.net中執行的所有查詢
回答
您應該考慮從頁面中刪除查詢並將其抽象爲具有集成日誌記錄機制的公用數據提供程序。有許多模式(MVP,MVC,MVVM),您可以從中學習如何解決此問題。當你分開你的活動(數據訪問,業務邏輯,演示文稿)時,你會發現管理每個單獨的部分更容易。
如果您無論出於何種原因都無法適應這樣的數據訪問實踐,那麼您可以簡單地將查詢過程統一爲幾個函數(根據您的返回類型),以便在aspx中看起來像這樣。 CS:
protected DataSet getDataSet(iDataCommand command)
{
//log the request
try
{
//open the connection
//execute the command
}
catch
{
//log failure
}
//log success
//return the result
}
那麼你就必須要一定的路由所有通過這些過程的請求。
您可以爲mysql創建特殊用戶,名稱類似於log_asp_user。比添加需要權限並在db中設置幾個參數:
SET GLOBAL general_log = ON;
SET GLOBAL log_output = 'FILE,TABLE';
SET GLOBAL log_queries_not_using_indexes = ON;
SET GLOBAL long_query_time = 1;
它需要將所有查詢記錄到mysql。 比保存在ASP開始和生成頁面的結束時間,然後從數據庫中的所有查詢:
SELECT * FROM mysql.general_log WHERE Time > min AND Time < max AND user_host LIKE '%log_asp_user%'
當我需要找到查詢被執行在SQL服務器我使用Profiler來捕獲所有的查詢。我不認爲這將適用於MYSQL,但你可能能夠找到一個等價的。
如果沒有等價物,那麼假定您的所有查詢都由單個類處理以在數據庫上執行它們,那麼記錄通過它的命令時不會花費太多。
您可以向該類添加屬性以確定是否記錄命令,並僅爲當前頁面打開它。
MySQL可以產生一個查詢日誌文件,所以如果你能夠獨立運行你的應用程序(即沒有其他用戶同時點擊數據庫),你應該清楚你的代碼是什麼只需運行應用程序然後查看查詢日誌即可。
在這裏看到關於MySQL日誌的詳細信息:http://dev.mysql.com/doc/refman/5.1/en/query-log.html
但是就像你想要做一些你的系統上剖析excersise,可能是爲了調查和改善性能的它的聲音給我。在這種情況下,我建議使用正確的代碼分析工具進行調查。以下是MSDN上相關文章的鏈接,以幫助您入門:http://msdn.microsoft.com/en-us/library/3xxk09t8%28v=vs.71%29.aspx
- 1. 如何在查詢中執行統計計算?
- 2. SQL:執行統計計算的查詢
- 3. 如何在ORACLE中獲取所有執行的SQL查詢?
- 4. 查看所有執行的elasticsearch查詢
- 5. 如何統計文件的所有行
- 6. 在codeigniter中執行執行後記錄所有查詢
- 7. 如何對VS2012 LightSwitch中的所有查詢執行預處理?
- 8. 如何用BufferedReader統計所有行
- 9. 在c#中執行查詢asp.net
- 10. 包需要返回查詢的執行計劃和統計
- 11. 如何在此計劃中的mysql中執行連接查詢
- 12. 如何統計所有結果和計數具體在同一個查詢 - MySql
- 13. 在統計查詢
- 14. MySQL - 如何統計主查詢中的行數,忽略子查詢行?
- 15. ASP.Net執行SQL(子) - 查詢
- 16. 如何查看python中查詢的「實際執行計劃」?
- 17. Mysqli multi_query不執行所有查詢
- 18. 如何選擇在一個查詢中統計所有表與一個表中的所有名稱和數字?
- 19. 如何在單個查詢中進行分組和統計?
- 20. 在PHP中,如何執行LDAP查詢以查找所有域控制器?
- 21. 如何捕獲所有針對表執行的查詢?
- 22. Yii中的統計查詢
- 23. SQL統計所有行
- 24. 對mysql中的所有行執行相同的查詢
- 25. 如何清除下來查詢執行統計在SQL Server 2005/2008
- 26. NHibernate查詢執行計劃?
- 27. Oracle查詢執行計劃
- 28. 如何從asp.net中的Linq獲取上次執行的查詢?
- 29. 如何設計一個面向對象的C#類的所有數據庫操作,如執行查詢,執行SP,執行標量查詢等?
- 30. 如何在mysql中統計所有行結果爲1?