當前位置:首頁 » 編程語言 » sql查詢慢
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql查詢慢

發布時間: 2022-01-29 14:45:58

『壹』 如何在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表示查詢超過兩秒才記錄;