Sql-Server

用視圖封裝表格

  • March 14, 2016

我需要更改表中列的順序(Oracle 和 SQL Server)。原因是我們的一些軟體呼叫select *insert沒有指定列。重構將太昂貴,所以我需要在數據庫級別解決它。

我的想法是創建一個新視圖來封裝表格並更改列的順序。目前表將被重命名,新視圖將具有原始名稱。我在這裡發現用視圖封裝表是某種數據庫設計模式。

以下是我的問題:

  • 當我用視圖封裝表並僅呼叫視圖時會失去性能嗎?
  • 您是否發現命名視圖有任何風險(不會有 V_ 前綴)?
  • 您是否看到用視圖封裝表格的任何其他優點/缺點?

好吧,

  • 視圖會增加成本,但如果視圖僅包含具有不同列排序的選擇,則成本將不明顯。
  • 您還可以使用所需的列順序重建表(相當昂貴的一次性操作)
  • 大多數人同意視圖應該遵循與表相同的命名標準(即沒有 V_ 或任何其他特殊前綴)

話雖如此,軟體幾乎不應該在不指定列的情況下進行選擇或插入。

引用自:https://dba.stackexchange.com/questions/131808