『壹』 如何在mysql查找效率慢的SQL語句
查看慢SQL是否啟用,查看命令:show variables like 'log_slow_queries';
如果結果為ON則是開啟了,如果為OFF則表示禁用了。
開啟慢查詢命令:set global log_slow_queries = on;
查看是否開啟:show variables like 'log_slow_queries';
查看慢查詢參數,即設置超過多少秒的查詢歸為了慢查詢。參數為:long_query_time,查詢命令:showglobal variables like 'long_query_time';
mysql默認時間為10秒,即10秒及以上的查詢被歸為了慢查詢。我們的實際項目中根本就不可能這么包容你,所以得提供查詢效率優化sql,讓程序更快的執行。
這里設置時間為1秒,即超過1秒就會被認為慢查詢。設置命令:set global long_query_time =1;用命令設置的,會立即生效,不用重啟mysql服務。但重啟mysql服務後就會失效。
查看設置的時間,show global variables like 'long_query_time';即可看到現在已經變為1秒了
查看慢查詢存放日誌,命令:show variables like 'slow_query_log_file';
去相應目錄下查看即可。
『貳』 如何查找MySQL中查詢慢的SQL語句
你是指慢查詢日誌嗎?
在my.ini中加上下面兩句話
log-slow-queries = e:\mysql5.5\mysql_slow_query.log
long_query_time=10
前面一句是設置慢查詢日誌存放路徑,第二句是指多少秒以上算慢查詢,上面的語句,就是指10秒。然後show variables like '%slow%';就行了
『叄』 請教SQL表查詢慢的原因
查詢慢是和表結構,語句,系統等相關的 建索引等方法都可以改善表結構, 另外如果返回數據量很大,當然會慢,所以你盡量查詢相對有用的數據 再就是查詢語句了 比如用in查詢沒有jion查詢快,還有 between 改成 > <會快 再還有,用子查詢也會慢很多, 如果是一些很復雜的查詢,可以改用存儲過程會好點,有時用臨時表會慢但,從海量數據中查詢取數進行子查詢又不如用臨時錶快,不同的問題用不同的解決方法,看你要哪種了,單看你的問題無法直接判斷。 不過,優化查詢句是關鍵的了。
『肆』 SQL查詢太慢,或者根本就查不到數據有超時了
那是因為你沒有建索引的關系,需要在danhao上建立索引,如果danhao是唯一值,需要建唯一索引。
『伍』 sql:查詢時快時慢
如果說是sql
server
的話有這種情況,欄位越多,查詢可能越慢,並且如果你的欄位中有比如text,ntext之類的話會有這種情況;
還有,你的這種寫法可能也造成執行慢,SQL在執行時有這樣一個規則,不知道你是否了解,在執行時,SQL
後台會先執行編譯,找到一條最佳查詢路徑,也就是最快的查詢路徑,再真正執行查詢;這個編譯是需要時間的,如果條件復雜,或者由其它的變化而來的條件,會存在編譯的查找最佳路徑的時間問題;
資料庫的欄位越多,會有可能越慢,不管是否是空表,至於什麼原因,好像MICROSOFT沒有說法。
另外1=1這種恆等條件最好也不要加。
『陸』 sql數據查詢反映很慢
這個問題我也遇見過,慢的話也正常,因為數據比較多
解決辦法啊,首先從表考慮,可以針對這個表建索引,
然後的話說優化查詢語句,可以的話添加 with (nolock);即select * from A with (nolock) 這樣
然後就是where條件了,盡量不要使用like,in這些。盡量添加where條件。
這樣應該可以了,還不行的話,上網查查怎麼優化DB。
『柒』 求助 SQL 查詢太慢
C表臨時生成還大,然後再去查詢一定會減慢速度,而且幾乎沒有能走索引或者其他條件的通道(一堆左右鏈接decode)。
語句優化幾乎做不了什麼,試試看查詢結構優化吧,比如C建立為物化視圖或者一張表等等,語句這塊做不了什麼了。
『捌』 SQL子查詢過多查詢速度太慢如何優化
先行轉列行不行呢,以第一張表為例
select proctguid,
max(case when num=1 then description end) tz1,
max(case when num=2 then description end) tz2,
max(case when num=3 then description end) tz3,
max(case when num=4 then description end) tz4,
max(case when num=5 then description end) tz5
from proct_description
group by proctguid
然後再join,用proctguid和原表關聯,這樣上面就只需要寫
select p.*,tz1,tz2,tz3,tz4,tz5 from 了
『玖』 如何解決SQL Server查詢速度緩慢的問題
你先看看綁定的時候代碼有問題沒。
然後注意取數據最好用存儲過程,不僅快還好維護。分頁查詢百萬級的數據我覺得不一定要用。
資料庫的索引建立,以及舊數據歸檔也就是很有效地提高性能的方法。
『拾』 怎麼查找執行比較慢的sql語句
一、MySQL資料庫有幾個配置選項可以幫助我們及時捕獲低效SQL語句 1,slow_query_log 這個參數設置為ON,可以捕獲執行時間超過一定數值的SQL語句。 2,long_query_time 當SQL語句執行時間超過此數值時,就會被記錄到日誌中,建議設置為1或者更短。 3,slow_query_log_file 記錄日誌的文件名。 4,log_queries_not_using_indexes 這個參數設置為ON,可以捕獲到所有未使用索引的SQL語句,盡管這個SQL語句有可能執行得挺快。 二、檢測mysql中sql語句的效率的方法 1、通過查詢日誌 (1)、Windows下開啟MySQL慢查詢 MySQL在Windows系統中的配置文件一般是是my.ini找到[mysqld]下面加上 代碼如下 log-slow-queries = F:/MySQL/log/mysqlslowquery。log long_query_time = 2 (2)、Linux下啟用MySQL慢查詢 MySQL在Windows系統中的配置文件一般是是my.cnf找到[mysqld]下面加上 代碼如下 log-slow-queries=/data/mysqldata/slowquery。log long_query_time=2 說明 log-slow-queries = F:/MySQL/log/mysqlslowquery。 為慢查詢日誌存放的位置,一般這個目錄要有MySQL的運行帳號的可寫許可權,一般都將這個目錄設置為MySQL的數據存放目錄; long_query_time=2中的2表示查詢超過兩秒才記錄;