Ⅰ 請教一個sql執行時間很長的問題
append就行了,加了append幾乎不產生undo。至於臨時表,和undo有什麼關系?臨時表該生成的undo照樣生成。難道你會話級臨時表就不能rollback了嗎
Ⅱ 多條SQL查詢程序運行時間過長
執行時間最長的20條SQL語句(按時間降序排列),可保存為腳本方便調用:
SELECT rows_read / (num_executions + 1) as avg_rows_read,
rows_written / (num_executions + 1) as avg_rows_written,
stmt_sorts / (num_executions + 1) as avg_sorts,
total_exec_time / (num_executions + 1) as avg_exec_time,
substr(stmt_text,1,1000) as SQL_Stmt
FROM SYSIBMADM.SNAPDYN_SQL ORDER BY avg_exec_time desc fetch first 20 rows only;
祝你學習愉快!
Ⅲ 為什麼SQL命令執行所需時間超級長!!!
一:你的伺服器不是本機,而是遠程機!
二:你的硬體配製太低!
三:你的命令的確很牛,需要這么長時間!
你對照上面的三條找找吧!
Ⅳ 一條sql執行過長的時間,你如何優化,從哪些方面
1、查看sql是否涉及多表的聯表或者子查詢,如果有,看是否能進行業務拆分,相關欄位冗餘或者合並成臨時表(業務和演算法的優化)
2、涉及鏈表的查詢,是否能進行分表查詢,單表查詢之後的結果進行欄位整合
3、如果以上兩種都不能操作,非要鏈表查詢,那麼考慮對相對應的查詢條件做索引。加快查詢速度
4、針對數量大的表進行歷史表分離(如交易流水表)
5、資料庫主從分離,讀寫分離,降低讀寫針對同一表同時的壓力,至於主從同步,mysql有自帶的binlog實現 主從同步
6、explain分析sql語句,查看執行計劃,分析索引是否用上,分析掃描行數等等
7、查看mysql執行日誌,看看是否有其他方面的問題
個人理解:從根本上來說,查詢慢是佔用mysql內存比較多,那麼可以從這方面去酌手考慮
Ⅳ 一條sql語句最長可以多長
不同的資料庫甚至相同資料庫的不同版本都可能不一樣,具體可以查詢聯機幫助,或參閱產品規格說明。總的來說SQL語句的最大長度限制都是很大的,編寫SQL語句一般不需要考慮語句的長度問題。例如ACCESS的SQL最大長度約為6,4000個、MSSQL為65,536 * 網路數據包。像這樣的長度,足夠你寫下長篇大論了。但是話要說回來,一個太長的語句其執行效率變得會低下,盡量避免編寫太長和過於復雜的SQL語句還是非常必要的。
Ⅵ 怎麼查找一次執行時間最長的SQL
執行時間最長的20條SQL語句(按時間降序排列),可保存為腳本方便調用:
SELECT rows_read / (num_executions + 1) as avg_rows_read,
rows_written / (num_executions + 1) as avg_rows_written,
stmt_sorts / (num_executions + 1) as avg_sorts,
total_exec_time / (num_executions + 1) as avg_exec_time,
substr(stmt_text,1,1000) as SQL_Stmt
FROM SYSIBMADM.SNAPDYN_SQL ORDER BY avg_exec_time desc fetch first 20 rows only;
祝你學習愉快!
Ⅶ 資料庫的執行時間最好控制在多少秒以內才合適
一般最好在1秒鍾以內就執行完,大數據的話盡量控制在3秒鍾
Ⅷ 問SQL執行時間
主要看兩個zid有沒有索引。快則5分鍾以內,滿則30分鍾以上都有可能。
用這個試試:
delete from 表1
where not exists (
select 1 from 表2 where 表1.zid = 表2.zid)
Ⅸ SQL執行時間特別長怎麼處理
數據太多,或者硬體性能不足