複数のスキーマに数百のデータベーステーブルがある場合、ストアドプロシージャとビューを作成するときにエイリアス/シノニムまたは完全修飾名を使用することをお勧めしますか?そのようないくつかにschema.table考えると、何百ものエイリアス/シノニムvsデータベーステーブルの完全修飾名
Orders.OrderHeader, Production.LineThroughput, Sales.Opportunities
私は修飾名を使用すると、パフォーマンスがわずかに増加を期待していますが、このようなOrders.Customersなどの表は、Sales.Customersに移動しなければならない場合、私はどちらかだろうOrders.Customersを参照する既存のビュー/プロシージャを変更するか、またはそのような移動が予想される前に同義語を使用します。私はシノニムを使ってコードをテストに移すことに価値があると同時に、/ devをテストして同義語を必要としない私のプロダクション環境のレプリカを作成することもできます。
SQL Server Books Onlineは、完全修飾名を常に使用することをお勧めします。一部の友人は、数百の表のそれぞれに対して同義語を作成し、同義語のみを使用することを提案しています。私は完全修飾名(より読みやすく自明のコード、参照されるオブジェクトがどんなスキーマに属しているか、そしてschema.tableをタイプする習慣を知っている)を使用することを好みますが、パフォーマンス、操作性、可読性シノニムと完全修飾テーブル名を使用していますか?
環境によってコードがどのように移行されるかによって、完全修飾名の使用が影響を受ける可能性があります。スキーマ名に「DEV」と表示され、「PRD」に移動すると「検索/置換」の悪夢があります。 – Stellios