2014-03-07 26 views
1

在SqlLocalDB中創建命名實例而不是使用默認v11.0實例有什麼好處?在我的方案中,我在連接字符串中使用AttachDbFileName選項附加數據庫文件。SQL Server中命名實例的好處是什麼?

輔助問題:是否可以爲不同的LocalDB實例設置不同的設置?如果是這樣,什麼樣的設置(我讀過,你不能改變,如排序)?

+0

命名*任何*的好處是什麼? :) – Crono

+0

你可以稱它爲名字。非常明顯。但請注意,v11.0也被命名,但我不需要創建它(共享,管理安全性等)。那爲什麼要麻煩?我希望MS提供一個功能是有原因的。 –

回答

1

我可以看到兩種可能的優點,性能和控制配置的能力。

LocalDB受限於與其他SQL Express實例相同的方式,每個實例都應用CPU和RAM限制。如果您的應用程序使用自己的實例,它將自己完成,並且不需要與其他應用程序共享。使用默認實例意味着您的應用程序必須使用默認實例與其他應用程序共享

如果您需要製作任何可能破壞其他應用程序的特殊實例範圍的配置,您也可以使用命名實例。或者,如果您擔心其他某些行爲異常的應用程序可能會更改違反應用程序的默認實例,並讓您的客戶責備您。雙向工作:-)

+0

第一個原因(關於資源限制)很有意義,謝謝。至於第二:我可以(或使用共享實例的任何其他應用程序)真的在LocalDB的情況下實現任何實例範圍的配置更改嗎? –

2

如果你想要在同一臺機器上運行多個SQL Server實例,你必須命名它們來區分它們。除此之外,就正常使用情況而言,沒有真正的「好處」。

如果您需要不同的服務器配置或甚至不同的版本,多個實例很有用。比如說你有一個用於Sql 2008的數據庫,並希望爲Sql 2012中的新應用程序創建一個新的數據庫。你可以將兩者都託管在同一臺機器上,並使用最高級版本的功能,同時保持舊版本的正常工作。 。

+0

按命名實例指我使用「sqllocaldb.exe創建MyInstance」命令創建的實體。稍後,您可以在連接字符串中使用它,例如「Data Source =(LocalDB)\ MyInstance; AttachDbFileName = c:\ myfile.mdf」 –

+0

好吧,我們正在談論同樣的事情。我編輯了我的答案給你更多的細節。 – Crono

+0

如果您覺得我沒有回答您的問題,請隨時索取更多詳細信息。 – Crono

1

請注意,您只能安裝一個默認實例,但您可以安裝多個命名實例。除非您特別需要在同一主機上安裝多個SQL Server實例,例如同時運行不同版本,集羣或其他隔離要求,否則最好只安裝每個主機的默認實例。任何額外的實例必須命名(顯然是出於區分的原因)。

默認和命名實例之間的根本區別主要是網絡連接問題。客戶端可以使用知名1433端口上的主機名稱連接到默認實例。要連接到命名實例,客戶端指定主機和實例名稱(例如「MyHost \ My_Instance」),並且SQL Server Browser服務返回指定實例正在偵聽的端口。

在現實世界中,具有多個實例的原因因組織而異。下面是一些最常見的原因有:

應用功能或負載測試

  • 負載測試 - 能力已經裝載多個代碼庫,協調停止所需的實例來進行負載測試,進行負載測試,然後在完成後重新啓動所有實例。 功能測試
  • 能夠擁有多個代碼庫並能夠使用預先分配的資源量獨立測試。

服務器整合

  • 其中一個最新趨勢是整合到一臺服務器SQL Server的多個實例。使用多個SQL Server實例,可以對單個實例執行完整的SQL Server備份和恢復,以維護與原始服務器相同的功能。

內部主機\部門級服務器共享

  • 在SQL Server最初考慮一個部門的解決方案,可能有1臺物理服務器上的SQL Server的多個實例平等共享服務器的資源(大量的CPU和內存)。
  • 這種情況非常適合按照該範式向組織部門收費。

安全

  • 多個實例非常適合需要提升的SQL Server權限,你不想上攙同一實例應用那些討厭的第三方應用程序。

演示

  • 多個實例是理想的支持演示的地方,有必要表現出特定的應用程序以及它如何影響SQL Server中。

來源:

尼斯閱讀:

相關問題