web-dev-qa-db-ja.com

sysschedulesデータ型の選択

SQLServerが日付と時刻の値をintではなくdatetimeとしてmsdb.dbo.sysschedulesに保存するのはなぜですか。その理由はSQLServer2000の何かにまでさかのぼると思います。

ストレージ容量の問題、パフォーマンス、またはその他の問題でしたか?

7
joe

当時の設計管理は現在よりもはるかに緩く、このテーブルの設計を担当した人は、個別の日時列を使用するよりも整数を処理する方が簡単だと考えていたためです(これは個別の日時データを取得する前に戻ったことを思い出してください)型、および一般的なロジックが整数の処理が文字列や日付よりもはるかに効率的である場合も)。私たちはまだこのデザインの選択にお金を払っています。私は自分のテーブルを作成し、既存のテーブルをビューに置き換えて、どれだけ壊れる可能性があるかを確認したいと思っています(それが可能かどうかはわかりませんが、エージェント周辺のカスタムコーディングの負担が大幅に軽減されます)。

あなたがその開発者を追い詰めて彼または彼女にスコッチのケースを与えない限り、あなたが今までに追跡するかどうかはわかりませんなぜsp_who2出力に2つのSPID列をもたらしたのと同じ考え方である可能性があります(実話、またはそう言われています-開発者は左にスクロールして、どのSPIDがメトリックの原因であるかを確認することにうんざりしていましたそうです、彼または彼女は列リストの最後に別のエントリを追加しました)。

5
Aaron Bertrand