例えば、かなりのクエリにスキーマの所有者を含むことデシベルのパフォーマンスを向上させることを受け入れているようだ。:SQL Serverのパフォーマンスと、完全修飾テーブル名
SELECT x FROM [dbo].Foo
対SELECT x FROM Foo
。
これは、SQL Serverが接続コンテキストでユーザーに属するFooテーブルを検索するため、ルックアップを保存することになっています。これに何らかの真実があるの
SELECT x FROM MyDatabase.[dbo].Foo
:
今日は、私はあなたがあなたの接続文字列で選択したデータベースを照会している場合でも、常にデータベース名を含むことは、パフォーマンスを同じ方法で改善することが言われましたか?これはコーディング標準として理にかなっていますか?これのどれも(最初の例でさえ)測定可能な利益に変換されますか?
データベースサーバーで追加の辞書を検索すると、Webサーバー(または他のクライアント)で膨大なSQLと余分な連結が発生しているのですか?
違いがある場合は、すべてのクエリにデータベース名が含まれているため、メンテナンスの問題が発生します。データベースの名前を変更するのが非常に難しくなります。 – adrianbanks
あなたのメンテナンスによって異なります。私の特定の手順の中で完全修飾名を持つことは、テスト環境内の別のDBに接続しても同じように機能することを保証します - 私の特定のシナリオでは、私はテスト環境を望みます。格納されたprocに関する限り、「生産」の結果を生成する。おそらくベストプラクティスではありませんが、われわれのデータストアの広範な見通しは、独立したTESTドメインで完全に再現されたカウンターパーツをクリーンなサンドボックス状態にしていないため、多くのTEST/DEV環境最高でも、偽のデータと生産データが混在しています。 – bkwdesign