sql >> データベース >  >> RDS >> Sqlserver

新しいデータベースを作成するときの最適な ANSI オプション

    オプションのデフォルトは OFF です おそらく、このデータベースはデフォルトに一切手を加えずに作成およびスクリプト化されているためです。データベースが作成されると、基本的に model から複製されます システム データベース、および SQL Server の新しいインストールでは、データベースの ANSI 設定は OFF になります。 、これらの設定の一部 (ANSI_NULLS など) にもかかわらず ) OFF にしたくないオプションです 最新のデータベース アプリケーションに。実際、ANSI_NULLS の場合、 特に、ドキュメントでは、それをまったくオフにする機能は非推奨 であると明記されています とはいえ、実際にそうなるまでにはまだ数年かかるでしょう。

    そしてそこに問題があります:これらの設定はまだ OFF のままです 古いアプリケーションのために、これらのオプションを ON にする必要がありました 彼らの良さ(そして破壊的な変更)から恩恵を受けるのはいつですか。セッションで値が指定されていない場合、データベース設定が適用されます。

    ただし、ほとんどのアプリケーションは できます これらの設定は、明示的でない場合はセッションで指定し、データ アクセス ライブラリを介して暗黙的に指定します。 SET ANSI_DEFAULTS のドキュメントに従って 、一度に一連の設定を切り替えます:

    DB-Library は古いアクセス ライブラリであり、一部の古いアプリケーションや、必要に応じて FreeTDS などのバッキング ソースとして使用されている古いアクセス ライブラリであるため、データベース設定を意図的または誤って使用するアプリケーションに出くわすことがよくありますが、これは

    最高について これらのオプションの値は、ユース ケースに完全に依存します。古い動作を期待する古いアプリケーションをサポートする必要がある場合は、データベース設定を OFF にしておくしかない場合があります。 .古いライブラリを介して接続するが、実際には最新の SQL セマンティクスを期待するアプリケーションがある場合は、それらを ON にすることをお勧めします。 .他のすべてのアプリケーションでは、これらのオプションは、アプリケーション自体によってセッションごとに (不適切な) 正しい値に設定されている可能性が高く、構成内容は問題になりません。

    個々のオプションと、それをいつ ON にするかについての説明 または OFF 合理的な回答の限界を超えます。それぞれのドキュメントを参照して、独自のベスト プラクティスを策定してください。 SET のようなものを許可できます 計算列のインデックスのオプション要件 ON にするための一連のオプションが必要です。 それらを作成する前に (そして、それらは一般的にあると便利なものと見なされます)。




    1. RMySQLを使用してアクティブな接続を閉じる

    2. 5分間隔でデータベースにあるエントリの数を数えます

    3. スカラー列と配列列の両方を含む、PostgreSQLでの複数列インデックスの作成

    4. MySQLクエリがワイルドになりましたか?