A. sql server 創建視圖很快,但從視圖讀數據很慢
在經常查詢的列創建索引,
至於聚集和非聚集索引該什麼時候創建 http://database.ctocio.com.cn/tips/272/7588272.shtml
這個網址里有很詳細和地道的講解,希望能夠對你有所幫助。
B. MySQL視圖查詢超慢,求解答
時間的快慢主要由索引決定,在索引都最優化的情況下才與數據量有關。 視圖不可能明顯加快的查詢速度,只是編程方便而已。
C. sql server 視圖效率問題
1、SQL本來就應該盡量少用視圖,更何況你這么大數據量
2、每個表要建索引
3、語句優化,我給你寫成一個存儲過程,你可以試下
create proc test
as
with c_1 as
(
SELECT c.varSOuCode
, c.varStoCode
, SUM(cd.fltCarWeight) AS fltCarWeight
, SUM(cd.mnyCarFreight) AS mnyCarFreight
, c.varDsOGoCode
, c.dtmCarDate
, c.intSingIn
, c.nvrCarCompany
, c.dtmCBTime
FROM dbo.RL_CarrierDetails AS cd INNER JOIN
dbo.RL_Carrier AS c
ON c.varCarCode = cd.varCarCode
GROUP BY c.varSOuCode
, c.varStoCode
, c.varDsOGoCode
, c.dtmCarDate
, c.intSingIn
, c.nvrCarCompany
, c.dtmCBTime
)
s as
(
SELECT sop.varStOCode
, so.dtmCreDate
, ISNULL(SUM(sop.intCostNum * p.fltWeight), 0) AS fltWeight
FROM dbo.RL_StoreOutPro AS sop INNER JOIN dbo.RL_StoreOut AS so
ON so.varSOuCode = sop.varStOCode LEFT OUTER JOIN dbo.RL_Proct AS p
ON sop.varProCode = p.varProCode AND p.fltWeight > 0
GROUP BY sop.varStOCode, so.dtmCreDate
)
SELECT c_1.varSOuCode
, c_1.varStoCode
, c_1.fltCarWeight
, c_1.mnyCarFreight
, s.fltWeight
, c_1.fltCarWeight - s.fltWeight / 1000 AS diffNum
, s.dtmCreDate
, c_1.varDsOGoCode
, c_1.dtmCarDate
, c_1.intSingIn
, c_1.nvrCarCompany
, c_1.dtmCBTime
FROM c_1 INNER JOIN s
ON c_1.varSOuCode = s.varStOCode
D. Oracle 視圖查詢有的時候很慢,有的時候查詢很快
這種情況有很多可能性,首先,你的伺服器的負載情況會影響到你的數據讀取速度的,如果資料庫伺服器執行的進程過多,會導致查詢速度下降很多。
另外,第一次執行同一個SQL的時候,都會比較慢一些,再次執行的時候,由於數據等還在內存內,會速度快很多。
再者,在Oracle中,有共享SQL語句的機制,在第一次解析之後, ORACLE將SQL語句存放在內存中.這塊位於系統全局區域SGA(system global area)的共享池(shared buffer pool)中的內存可以被所有的資料庫用戶共享. 因此,當你執行一個SQL語句(有時被稱為一個游標)時,如果它 和之前的執行過的語句完全相同, ORACLE就能很快獲得已經被解析的語句以及最好的執行路徑. 這樣也會大大的提高效率。
E. 為什麼我的SQL資料庫變的很慢
第一,檢查SQL資料庫的日誌文件是否過大
第二,檢查SQL表中的記錄是否過多
第三,整理一下伺服器硬碟的碎片
第四,更新硬體~加大內存,增加系統緩存
注意做好資料庫系統優化
F. sql 給視圖建立聚集索引後 更改其中一個表的內容速度變慢
索引視圖是被具體化了的視圖,即它已經過計算並存儲。可以為視圖創建索引,即對視圖創建一個唯一的聚集索引。索引視圖可以顯著提高某些類型查詢的性能。索引視圖尤其適於聚合許多行的查詢。但它們不太適於經常更新的基本數據集。
如果很少更新基礎數據,則索引視圖的效果最佳。維護索引視圖的成本可能高於維護表索引的成本。如果經常更新基礎數據,則維護索引視圖數據的成本可能超過使用索引視圖所帶來的性能收益。
如果你經常更新基礎表,那麼創建索引視圖則不太適合,你需要權衡利弊,如果你的確需要更新基表又迫切地需要建立視圖索引,那麼可以嘗試將基礎數據以批處理的形式定期更新,甚至在更新前刪除所有索引視圖,更新完成後再重新生成。這樣做可以提高更新的性能。
G. 如何提高sql 視圖運行效率
這4個表的連接欄位上建索引
然後你視圖使用時的where條件中能最大可能篩選數據的那個條件上最好也建個索引,
具體看看執行時的執行計劃吧