SQL ServerとOracle

別のプロジェクトにヘルプ参加することになった。
SQLServer -> Oracle11gだが、Oracleが驚くほど遅いw。
というかSQLServerが反則的に速いところがある。
VB6でADO利用だが、たとえば処理の中でサーバ日付を取得するためSELECT GATEDATE()している部分があってこれがループの中にあったりする。しいかもSQLを呼び出す毎にコネクションを再接続(!!!)している。で、全く?速度に影響が出ているようには感じられない。
OracleではSELECT SYSDATE FROM DUALとするわけだが、もうコネクションにかかるコストが馬鹿にならないw。同じ処理をやらせるとSQLServerは5秒程度で終わるのにOracleだと1分かかっても終わらないw。
このためにわざわざコネクションを切らないように改造したりと難儀している。
そのほかにもいろいろと
・=NULLと書ける(SQLServer)
・CHAR型の項目に対して A = 0 と書いてもキーが有効(Oracleなら A = '0')
・VARCHARの項目に対して A = 1111 と書いてAが'01111'に一致する!!!!!(SQLServer)しかもインデックス効いてるw。というかこれどうなんだw
・空文字があったので移行したら困ったことになっているw
・UPDATE FROMがあって(しかも複雑)変換したMERGEがうまく動かなかったりUPDATE ~ WHERE EXISTSとかに改造したりと大変。