sql語句過長
A. sql語句太長,能否拆開執行
簡單的回答,到目前為止,沒有能支持SQL語句拼接的資料庫管理軟體,也應該沒這個必要。
下面是一些常識,有耐心可以看一下。
1、原則上,MS SQL SERVER對SQL條件語句的長度不作限制,起碼當前沒有人有實際的單條語句沒法執行完成的報道,應該幾千個字元以內的單條SQL語句都能正常的在MS SQL附帶的「SQL Server Management Studio」或「企業管理器」中執行,要不,你試試,也許你就是第一個發現問題的人。
2、如果是編程,使用某些編程軟體向SQL Server發送SQL語句的話,受限於編程環境下,字元串的長度或別的因素,可能會有某些不同,如果是那樣的話,最常見的做法是將多條SQL語句做成存儲過程,放在SQL Server資料庫中,程序只需要發送初始條件進行存儲過程的調用即可。
3、也就是說,復雜的SQL語句,絕大多數專業工程人員一般都不會用通過客戶端直接發向SQL 伺服器的方式去執行。如果只是臨時的要進行一些SQL資料庫的操作,也可以直接在SQL相應的管理工具中做。
B. 2020-10-11:一條sql語句執行時間過長,應該如何優化從哪些方面進行優化
改進資料庫sql語句進行優化的理由 應用程序之優化通常可分為兩個方面:源代碼之優化和sql語句之優化。源代碼之優化在時間成本和風險上代價很高;另一方面,源代碼之優化對資料庫系統性能之提升收效有限。 優化之理由 1)sql語句是對資料庫(數據)進行操作之惟一途徑; 2)sql語句消耗了70%~90%之資料庫資源; 3)sql語句獨立於程序設計邏輯,相對於對程序源代碼之優化,對sql語句之優化在時間成本和風險上之代價都很低; 4)sql語句可以有不同之寫法; 5)sql語句易學,難精通。 優化技術之發展 第一代之sql優化工具是執行計劃分析工具。這類之工具對輸入之sql語句從資料庫提取執行計劃,並解釋執行計劃中關鍵字之含義;第二代之sql優化工具只能提供增加索引之建議,它通過對輸入之sql語句之執行計劃之分析來產生是否要增加索引之建議。該類工具存在著致命之缺點——只分析了一條sql語句就得出增加某個索引之結論,根本不理會(實際上也無法評估到)增加之索引對整體資料庫系統性能之影響。其破壞性在於: 1、不理會增加之索引對其他增、刪、改sql語句之負面影響; 2、沒有考慮增加之索引可能導致資料庫判斷失誤; 3、對由於增加索引引起之資料庫系統負擔忽略不計。 同時,這些工具由於技術水平之限制存在著以下缺點: 1、無法保證建議或改寫之正確性; 2、無法進行重寫,僅僅提供了建議或有限程度之改寫,重寫工作還是需要人工完成,優化工作所需之時間和工作量同人工進行優化差不多; 3、改寫之規則和hints有限,難以處理復雜之sql語句; 4、必須人手逐條進行測試。 這類工具曾經盛極一時,直到人工智慧自動sql優化之出現。