3

どちらが優先され、その理由は何ですか? わかりやすくするために整数値を使用していますが、これらはフィールド名になります。

  1. SELECT 2*1.0 / 3
  2. SELECT CAST(2 AS float) / 3
  3. SELECT CONVERT(float, 2) / 3
4

1 に答える 1

3

最初のテーブルと CAST/CONVERT に関するパフォーマンスの観点から、すぐに一時テーブルを作成し、値 2 を使用してクエリを実行しました。

CREATE TABLE #temp (Two FLOAT)
INSERT INTO #temp VALUES (2)
SELECT * FROM #temp

SELECT Two*1.0 / 3 FROM #temp
SELECT Two*1E0 / 3 FROM #temp
SELECT CAST(Two AS FLOAT) / 3 FROM #temp
SELECT CONVERT(FLOAT,Two) / 3 FROM #temp

そこから選択するとき、いくつの異なる値を入力しても、実行計画と統計 IO は同じ数値 (それぞれ 4 分の 1) を返します。5、6、7、8、9 などの他の値、さらに多くの値を入力してみましたが、コストは同じでした。この上にリストされているリレーショナル以外の記事から-sql-server-is-concerned-which-is-better.aspx )、最初の方法を使用しても、少なくとも小さな値には影響がないようです (私は 2,000,000 を使用しました)。

于 2012-12-04T15:21:47.330 に答える