0

現在、バックエンド MySQL を使用してアプリケーションを開発していますが、将来的には、SAS で動作するすべてのビジネス ロジックを作成する必要があります。

したがって、SQL ベースのエンジンと SAS 間でのデータ型の不一致の問題を回避するために、どの一般的なデータ型を使用すればよいか教えてください。たとえば、SAS は int/double に Numeric のみを使用しますが、SQL ベースのエンジンには異なるデータ型があります。SQL のすべてのフィールドに DECIMAL を使用すると、ストアド プロシージャの実行時間に影響しますか?

追加情報: 私のデータベースでは、各テーブルに数百万行あります。

4

1 に答える 1

0

SQL-92 を見る必要があります。少し時代遅れで、新しい標準があります (SQL:1999 など) が、ほとんどの RDBMS は少なくともそのサブセットを使用する必要があります。

少なくともこれらは問題ないはずです:

  • キャラクター
  • 文字変化
  • 少し
  • 数値
  • 小数
  • 整数
  • SMALLINT
  • 浮く
  • 本物
  • 倍精度
  • 日にち
  • 時間

データ型ごとに、割り当てられているメモリを確認する必要があります。これは、SQL Server だけでなく、実行のパフォーマンスにも確実に影響します。たとえば、INT を使用すると JOIN は非常に高速になり、NUMERIC を使用すると十分に高速になりますが、VARCHAR (CHARACTER VARYING) にはお勧めしません。あなたの場合、DECIMAL を使用するとパフォーマンスに確実に影響しますが、問題は次のとおりです。

クエリの最適化に集中し、可能な限り SQL-92 に固執し、最終的な問題を解決する必要があると思います。

于 2013-08-03T13:46:15.360 に答える