Ⅰ 如何提高此sql查詢速度
首先吧...不要用*,取你需要的欄位...然後把有索引的欄位放在最前面...條件判斷出的數據少的表放前面..條件也要放前面..==吧...
你是什麼庫???
你可以吧你的語句執行下計劃..看看計劃里..欄位的先後順序然後在確定在哪個欄位上建索引...
Ⅱ 一條sql語句可以查出上千條數據,怎麼可以提高查詢速度
1、你的表大不大,如果非常大,又沒有索引在列上,那會很慢,因為是全表掃描;
2、也可能是數據容器問題,我用的C#不懂JAVA,若要在C#中的list中查找一個數據,處理時間與找到這行前掃描的行數成正比,如果用Dictionary,用的是HASH查找,查找時間與表大小無關,你看看JAVA中的數據容器的介紹。
Ⅲ 怎樣寫sql語句能加快sql查詢速度
盡量使用數字型欄位,一部分開發人員和資料庫管理人員喜歡把包含數值信息的欄位設計為字元型,
這會降低查詢和連接的性能,並會增加存儲開銷。
這是因為引擎在處理查詢和連接回逐個比較字元串中每一個字元,而對於數字型而言只需要比較一次就夠了。
Ⅳ 如何提高sql查詢速度
你A表的數據在網路上,那麼每一這個查詢需要從A表中載入所有的數據過來,這個需要佔用網路通道的。如果你是Oracle資料庫,那麼你最好還是使用物化視圖吧,將網路數據載入到本地,然後在做處理。再有就是這種連接操作本來就是非常費時的,連接兩端額表數據量越大,性能越差,你可以在做連接之前,先將兩個表分別過濾一番,盡量減少連接的數據量。
Ⅳ 如何提高sql資料庫的查詢速度
這是一個典型問題,在網上搜一下就行了。給你搜了一個粘過來看看
1.索引優化
建索引的選擇必須結合SQL查詢、修改、刪除語句的需要,一般的說法是在WHERE里經常出現的欄位建索引。如果在WHERE經常是幾個欄位一起出現而且是用AND連接的,那就應該建這幾個欄位一起的聯合索引,而且次序也需要考慮,一般是最常出現的放前面,重復率低的放前面。
SQL Server提供了一種簡化並自動維護資料庫的工具。這個稱之為資料庫維護計劃向導(Database Maintenance Plan Wizard ,DMPW)的工具也包括了對索引的優化。如果你運行這個向導,你會看到關於資料庫中關於索引的統計量,這些統計量作為日誌工作並定時更新,這樣就減輕了手工重建索引或者DBCC INDEXDEFRAG所帶來的工作量。如果你不想自動定期刷新索引統計量,你還可以在DMPW中選擇重新組織數據和數據頁,這將停止舊有索引並按特定的填充因子重建索引。
2.
改善硬體(雙CPU,Raid 5,增加內存)
tempdb這個臨時資料庫,它對性能的影響較大。tempdb和其他資料庫一樣可以增大,可以縮小。當數據文件需要增長的時候,通常不能保持剩餘部分的連續性。這時文件就會產生碎片,這種碎片會造成性能下降。這種碎片屬於外來性碎片。要阻止在tempdb中產生外來性碎片,必須保證有足夠的硬碟空間。一般將tempdb的容量放到平均使用容量。而你也應該允許tempdb自動增長,比如你有個一個超大的join操作,它建立了一個超過tempdb容量的時候,該查詢將失敗。你還要設置一個合理的單位增長量。因為如果你設得太小,將會產生許多外來性碎片,反而會佔用更多資源。sqlserver調優最有效的做法之一,就是把爭奪資源的操作獨立出去。tempdb就是一個需要獨立出去的部分而tempdb和其他系統庫一樣是公用的,是存取最可能頻繁的庫,所有處理臨時表、子查詢、GROUP BY、排序、DISTINCT、連接等等。它最適合放到一個具有快速讀寫能力的設備上。比如RAID0卷或RAID0+1卷上。
查詢語句一定要使用存儲過程;
3、查詢盡量使用TOP子句
4.將表按一定的約束分成子表,(如按分類)創建約束,在用Like 時,先用分類 and like , 應該可能解決問題. 而且效果立稈見影!(你要確定SQL會認識你建的分區視圖).我一個表有上百萬的記錄(700兆),用分區視圖後,查詢速度基本跟10萬行一樣.
如果還是太慢,還可以考濾分布式分區視圖!這總可以解決問題了吧!
關鍵在於你能否把大表按某種約束分解成子表.
Ⅵ 查詢的SQL語句怎麼寫才能提高查詢效率
這是SQL語句優化的問題了。網上好多類似的文章,非常全面。
個人覺得比較常用的是:
SQL語句查詢中經常用到的欄位建索引,這樣可以非常明顯的提升查詢速度。
FROM表的順序,大表在前,小表在後,因為檢索的順序從後往前。
WHERE, WHERE A.COLUMN = B.COLUMN,把小表的欄位放在後邊(B表),大表在前。
固定值查詢的放在後邊 COLUMN = '1'這種。因為這個也是從後往前的順序。
如果有(NOT) IN (SELECT ...) 盡量避免,因為IN裡面也是一個大的查詢,使用 (NOT) EXISTS的語法代替。
還有UNION和UNION ALL,多表聯合,UNION的作用是可以去掉重復,如果多表沒有重復數據,使用UNION ALL效率也會大大提高。
Ⅶ 如何提高查SQL庫速度
根據不同的查詢條件,創立不同的索引.如果可能的話,建一條聚集索引.
優化查詢語句,查詢記錄時最好用視圖.
Ⅷ 怎麼提升以下SQL語句執行速度(數據量超大型)
我不知道你的邏輯是什麼,不需要嵌套這么多層的。
select time, week,address,
count( distinct case when status='az' then ip end) as az,
sum(distinct case when status='xz' then ip end) as xz,
sum(distinct case when status='open' then ip end) as op
from kp_statistics
where time between '2013-8-01' and '2013-8-31'
group by status,time ,week,address
Ⅸ 如何提高SQL查詢速度
索引對資料庫檢索優化時很重要的一個概念聚集索引在SQL中是唯一的也就是說聚集索引時一個很寶貴的資源但是SQL SERVER在自動分配索引的時候默認總是將ID主鍵分配為聚集索引其實是很浪費的通常情況下你可以通過語句創建聚集索引到你使用率最高的條件欄位上面去,當然你必須先分配聚集索引然後再去分配主鍵,否則主鍵創建時就會自動佔用聚集索引然後非聚集索引不能設置過濫,設置過濫會導致目錄增多最後反而導致查詢緩慢優化不是純粹理論上的東西,理論教會你怎麼去使用嘗試才能獲取經驗
Ⅹ SQL 提高查詢速度
sql查詢的優化主要看索引的建立。
在查詢分析其看看執行計劃,是否按照想要的索引執行。
多個case when then else只是結果展示的方式。對查詢速度的影響不大。