從數據表直接或從視圖中選擇數據有什麼區別?
每個人的最佳用途是什麼?從表中直接選擇數據和查看數據之間的區別
5
A
回答
3
根據Microsoft的說法,如果您在sql server 2000/2005/2008中使用索引視圖,那麼性能就會很好。
索引視圖可以通過以下方式提高查詢性能
1.聚合可以預先計算並存儲在索引中,以最大限度地減少查詢執行期間的昂貴計算。
2.可以預先加入表格並存儲結果數據集。
3.可以存儲連接或聚合的組合
但就像表上的索引一樣,視圖上的索引也會遇到修改開銷。因此,如果在運行時增加速度的好處超過了更新視圖索引所需的時間,則只需向視圖添加索引。
下面的鏈接給出了關於這個(關於何時使用什麼)的更多信息。
1
在大多數數據庫中,它們在功能上是可以互換的(不考慮物化視圖,這是完全不同的東西)。創建視圖有兩個常見原因。 1.抽象(和列別名)機制,以及2.用於權限和訪問控制。但至於效率,這不是問題。
0
認爲它是這樣的:
視圖僅僅是住在服務器上,已經由SQL引擎編譯的SELECT語句。
通常視圖用於限制/簡化表格的結果。
問候 ķ
1
這取決於數據庫和視圖的定義上。
一個簡單的視圖,即別名列或執行簡單計算與直接進行查詢沒有區別。
但是,在某些情況下,視圖可能會慢很多。一個例子:在Oracle中,如果你過多地嵌套視圖查詢(例如,一個視圖使用另一個作爲表,使用另一個視圖等),你可以創建糟糕的性能。
一般而言,您需要使用特定的數據庫和疑問進行測試。
相關問題
- 1. 2個數據表之間的區別
- 2. 爲數據庫水平和垂直縮放之間的區別
- 3. 可以直接從Kentico的數據庫中選擇數據嗎?
- 4. 圖表和Facebook中的MYSQL數據庫之間的區別?
- 5. Spring數據源和Tomcat數據源之間的區別?
- 6. 「數據庫還原」和「數據庫部署」之間的區別?
- 7. 數據[,「col」]和數據之間的區別$ col
- 8. 數據丟失和數據丟失之間的區別
- 9. 壓縮數據庫和SQL Server數據庫之間的區別
- 10. SQL臨時數據庫,臨時表和表之間的區別
- 11. 查詢兩次之間選擇數據?
- 12. 選擇和收集之間的區別
- 13. 數據沿襲和數據來源之間有什麼區別?
- 14. 數據庫視圖和查找之間的區別
- 15. 如何選擇和查詢不同域中的數據庫之間的數據?
- 16. 數據庫術語之間的區別
- 17. 從數據庫中排序數據以選擇正確的列表查看android
- 18. 檢查數據庫和數據表之間的數據存在
- 19. 列表切片和直接分配列表之間的區別?
- 20. 數據/類型構造函數和函數之間的區別?
- 21. 連接和不連接選擇之間的區別?
- 22. 數據庫名稱和數據庫中'名稱'參數之間的區別
- 23. 從數據表中選擇兩列之間的值
- 24. 文件中和數據庫中的會話之間的區別
- 25. 從數據庫中選擇x和y之間的行
- 26. `do.call()`函數之間的區別和直接調用R中的函數?
- 27. 函數中直接參數和全局參數之間有什麼區別?
- 28. 在選擇之前預先加載表格查看數據
- 29. HTTP查詢參數和HTTP表單參數之間的區別?
- 30. 從codeigniter連接表查看數據
不正確。當視圖嵌套時,一些數據庫會有性能問題。 – 2009-02-22 21:45:26
你有什麼參考?這似乎不太可能,(儘管這就是爲什麼我說「在大多數數據庫中」)。 – dkretz 2009-02-22 21:58:25
是的。在Oracle嵌套視圖可能表現不佳。在比較擴展查詢和Oracle內部多個視圖定義的相同查詢時,我們自己經歷了這種情況。 – 2009-02-22 22:18:27