http://blogs.wankuma.com/ognac/archive/2008/05/04/136244.aspx
OracleとSQL Serverの構造からなにから違うのに無理に一緒に操作できるようにしようという人がいますが、そんな事をしてはせっかくのデータベースが台無しになってしまいます。
初耳だったのですが、dualテーブルなんていう無駄なものをSQL Serverに持ち込むというのがあるとは思ってもいませんでした。
create table #dual(x varchar(1))
insert into #dual values('X')
select 20+3
select 20+3 from #dual
通常そのSQLを本当にコミットするときにどのような動きになるかを検証してください。
上記のようなSQLを書いて実行プランを検証するだけです。
上のSQLはSQL解析時に消えてなくなるが、下のSQLではテーブルスキャンが発生します。
もちろん1行で、頻繁に使われるならメモリ上に載っているかもしれませんがそのコストは0:100です。
0にいくつかけても0です。