『壹』 使用視圖能否加快數據的查詢速度
首先:視圖是由SELECT語句組成的查詢定義的虛擬表;同真實的表一樣,視圖的作用類似於篩選。定義視圖的篩選可以來自當前或其它資料庫的一個或多個表,或者其它視圖.
其次,視圖的主要作用有以下幾點:
視點集中:使用戶只關心它感興趣的某些特定數據和他們所負責的特定任務
簡化操作:,若視圖本身就是一個復雜查詢的結果集,這樣在每一次執行相同的查詢時,不必重新寫這些復雜的查詢語句
定製數據:視圖能夠實現讓不同的用戶以不同的方式看到不同或相同的數據集
合並分割數據:由於表中數據量太大,故在表的設計時常將表進行水平分割或垂直分割,但表的結構的變化卻對應用程序產生不良的影響
安全性:通過視圖用戶只能查看和修改他們所能看到的數據
以上是對視圖的一個簡單介紹,視圖並不會對查詢速度有任何影響,因為該執行的sql還是要執行
視圖了解,參考http://ke..com/link?url=CngLtVX8lGjq-Pda
『貳』 sqlserver 為什麼用視圖能提高查詢效率
你說的是 普通視圖? 還是分區視圖啊?
普通視圖 不會大幅提高查詢效率啊, 能提高點開發效率倒是真的。
分區視圖, 某些情況下, 倒是可以大幅度提高查詢的效率。
索引視圖(物化視圖) ,倒是可以提升查詢效率,但是那也是靠創建視圖後的
CREATE UNIQUE CLUSTERED INDEX 來提升的。
『叄』 大量數據多表聯合查詢時時, 使用視圖,是不是比直接查詢速度要快! 有高手請給講講,如何提高查詢速度
1、簡化應用程序。
視圖做為資料庫中的一種實體,實際上存在的只是它的腳本,而它的內容並不真正的單獨存在一份。一般,可以對復雜的應用程序從功能角度進行分析,將可以與其它的應用程序共用的那一部分,分離出來。對這部分功能,視具體情況可做成不同的資料庫實體(如過程),有些是可以做成視圖的。這樣,上層的應用程序就可以從視圖中取數據了。還有,可以把對遠地資料庫的訪問封裝在視圖中,使之對上層應用程序透明。2、可以對 UNION 後的記錄集排序。
直接對以下語句的結果排序,是不可能的。 select a.id id from a
union
select b.id id from b;
所以把以上語句作成視圖後,就可以了。設視圖名為A_B:
select id from A_B order by id;3、可以實現一定的許可權控制。
可以根據需要,對表中的一部分內容做一個視圖,以供一定的角色使用。可以對表中的一部分記錄做一個視圖(縱向),也可以對一個表中的一部分欄位做一個視圖(橫向),或二者兼而有之。--------------------------------------------------------------------
視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖並不在資料庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,並且在引用視圖時動態生成。
對其中所引用的基礎表來說,視圖的作用類似於篩選。定義視圖的篩選可以來自當前或其它資料庫的一個或多個表,或者其它視圖。分布式查詢也可用於定義使用多個異類源數據的視圖。如果有幾台不同的伺服器分別存儲組織中不同地區的數據,而您需要將這些伺服器上相似結構的數據組合起來,這種方式就很有用。一、視圖的作用 簡單性。看到的就是需要的。視圖不僅可以簡化用戶對數據的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為視圖,從而使得用戶不必為以後的操作每次指定全部的條件。 安全性。通過視圖用戶只能查詢和修改他們所能見到的數據。資料庫中的其它數據則既看不見也取不到。資料庫授權命令可以使每個用戶對資料庫的檢索限制到特定的資料庫對象上,但不能授權到資料庫特定行和特定的列上。通過視圖,用戶可以被限制在數據的不同子集上:使用許可權可被限制在基表的行的子集上。
使用許可權可被限制在基表的列的子集上。
使用許可權可被限制在基表的行和列的子集上。
使用許可權可被限制在多個基表的連接所限定的行上。
使用許可權可被限制在基表中的數據的統計匯總上。
使用許可權可被限制在另一視圖的一個子集上,或是一些視圖和基表合並後的子集上。 邏輯數據獨立性。視圖可幫助用戶屏蔽真實表結構變化帶來的影響。二、視圖的優點 (1)視圖能簡化用戶的操作
(2)視圖機制可以使用戶以不同的方式查詢同一數據
(3)視圖對資料庫重構提供了一定程度的邏輯獨立性
(4)視圖可以對機密的數據提供安全保護三、視圖的安全性視圖的安全性可以防止未授權用戶查看特定的行或列,是用戶只能看到表中特定行的方法如下: 1 在表中增加一個標志用戶名的列;
2 建立視圖,是用戶只能看到標有自己用戶名的行;
3 把視圖授權給其他用戶。四、邏輯數據獨立性 視圖可以使應用程序和資料庫表在一定程度上獨立。如果沒有視圖,應用一定是建立在表上的。有了視圖之後,程序可以建立在視圖之上,從而程序與資料庫表被視圖分割開來。視圖可以在以下幾個方面使程序與數據獨立: 1 如果應用建立在資料庫表上,當資料庫表發生變化時,可以在表上建立視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。
2 如果應用建立在資料庫表上,當應用發生變化時,可以在表上建立視圖,通過視圖屏蔽應用的變化,從而使資料庫表不動。
3 如果應用建立在視圖上,當資料庫表發生變化時,可以在表上修改視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。
4 如果應用建立在視圖上,當應用發生變化時,可以在表上修改視圖,通過視圖屏蔽應用的變化,從而資料庫可以不動。五、視圖的書寫格式 CREATE VIEW <視圖名>[(列名組)]
AS <子查詢>
DROP VIEW <索引名> 注意:視圖可以和基本表一樣被查詢,但是利用視圖進行數據增,刪,改操作,會受到一定的限制。(1)由兩個以上的基本表導出的視圖
(2)視圖的欄位來自欄位表達式函數
(3)視圖定義中有嵌套查詢
(4)在一個不允許更新的視圖上定義的視圖
『肆』 視圖能提高查詢效率嗎
首先:視圖是由SELECT語句組成的查詢定義的虛擬表;同真實的表一樣,視圖的作用類似於篩選。定義視圖的篩選可以來自當前或其它資料庫的一個或多個表,或者其它視圖.
其次,視圖的主要作用有以下幾點:
視點集中:使用戶只關心它感興趣的某些特定數據和他們所負責的特定任務
簡化操作:,若視圖本身就是一個復雜查詢的結果集,這樣在每一次執行相同的查詢時,不必重新寫這些復雜的查詢語句
定製數據:視圖能夠實現讓不同的用戶以不同的方式看到不同或相同的數據集
『伍』 通過視圖 查詢 真的影響效率嗎
以下是物化視圖的建立,注意是refresh mode是 on demand還是on commit ON DEMAND顧名思義,僅在該物化視圖「需要」被刷新了,才進行刷新(REFRESH),即更新物化視圖,以保證和基表數據的一致性;而ON COMMIT是說,一旦基表有了COMMIT,即事務提交,。
『陸』 資料庫中的視圖有什麼作用在j2ee開發中視圖一般在什麼場合用
視圖也叫虛表,存放的是解釋後的sql語句,不保存實際數據,不佔物理空間,即視圖本身不包含任何數據,只包含映射到表的一個查詢語句,當表數據發生變化時,視圖也隨之變化,
作用:方便查詢,限制數據訪問(視圖本質是一條select語句,)當訪問視圖時,只能訪問到select語句中涉及到的列,對其他列起到安全和保密的作用。
一般應該用在查詢的方面,比如特定的查詢頁面,而且經常調用,就可以用視圖提高效率。(個人看法啊)
具體應用場合應該要看業務需求了,我只知道這么多,
其他的就需要資料庫方面的大神給你解答了。希望能幫到你。
『柒』 有條件的查詢,在試圖里會影響效率嗎 比如我的資料庫里有10萬條數據,建的視圖「視圖表」,
視圖的作用主要是簡化sql、屏蔽隱秘信息等
檢索視圖的效率與直接使用視圖定義sql檢索,效率是一樣的
你的問題中,這2個比較沒有意義,
如果你的視圖的定義就是select * from 單據表
那麼2個的效率差不多,檢索視圖多套了一層,會慢一些
『捌』 sql語句聯合查詢 與 視圖想比較的話,那個效率快,為什麼。
sql效率比較快,存儲過程的好處是不僅快且更安全,但移植性差。視圖可以封裝查詢的復雜性,就像面向對象里類的概念一樣。