2009-05-13 12 views
3

免責事項:私はMSSQLからOracleに切り替えることを余儀なくされた新しい契約書に取り掛かりました。だから、私はオラクルの完全な新人です。おそらく、多くの悪いMSSQLの実践を私にもたらします。さて、質問に...Oracle SQLステートメントでセミコロンを使用

an answer in this threadによると、セミコロンは悪いので、避けるべきです。 SQL Developerでクエリが非常に遅くなっている理由を理解しようと時間を費やした後、私はこれを直接認識しました。複雑なクエリの終わりからセミコロンを削除した後、それは数秒で完了しました(セミコロンを削除する前の数分後に私をあきらめたのと比べて)。この動作は私を驚かせ、Googleの検索では、いつ、なぜ私はSQL文でセミコロンを使用すべきか、使用しないのかについてはあまり変わっていませんでした。誰か簡単な説明でこれをクリアすることはできますか?

また、MSSQLからOracleに移行する貧しい開発者のためのオンラインリソースへのリンクがある場合は、私は大いに感謝します!

ありがとうございます!

+0

btw MSSQLサーバーでセミコロンを使用する必要はありません。 – HLGEM

+1

@HLGEM:ただし、MSSQLでもhttp:// sqlblogを使用する必要があります。com/blogs/aaron_bertrand/archive/2012/09/25/16567.aspx –

答えて

15

セミコロンではありません。同じクエリを再実行すると、すでに行がキャッシュされていたため、はるかに速く戻ってきました。

+3

セミコロンは文の区切り文字です。 SQL * Plusの場合 update table_a set col_1 = 2; / 更新ステートメントは、セミコロンが検出されたときに自動的に実行されます。スラッシュはバッファ内の現在の文を実行します(つまり、実行した文を再実行します)。 スラッシュがなく、SQL文を空行で区切っても、文は実行されず、単純に破棄されます。それは非常に速いでしょう:) 異なるクライアントは、ステートメントを実行するさまざまな方法があります。 SQL Developerのctrl-returnは、SQLの最後にあるセミコロンを気にする必要はありません –

1

10年以上にわたってPowerBuilder、Java、.NET、およびTOADから開発者としてOracleと協力してきたことは変です。

私は、何が起きているのかを見極め、適切な統計とインデックスを使って、データベースが健全であることを確認するために、説明計画を使用することをお勧めします。

以前のバージョンのOracleでは、ルールベースの最適化を使用するとパフォーマンスの問題が発生する可能性があることを覚えていますが、最近はコストベースの最適化と統計によってこれらの問題が解決されています。ここで

2

は、あなたが簡単にあなたの場合、Oracleの構文に物事を変換する方法を見ることができるので、これは、OracleとSQL Serverの両方のための構文を持ってケビンとダニエル・クラインによって

を一言で途方もなく SQLを助ける本ですt-SQLで書く方法を知っている。

4

私は5年以上のMS SQLエクスペリエンスと4年以上のOracle Developmentから来ています。 多くのOracleの機能、特にSQLでは嫌なことは知っていますが、それは簡単です。 Oracleは本当に強力なDBMSです。多くの視点から、私はOracleよりもMSSQLを好むが、それは別の話題だ。

問題点:

セミコロンは単なる文の区切り文字です。

SQLデベロッパーはJavaとOCIを使用しているため、異なる問題が発生する可能性があります(私は間違っていると推測しています)。

何かが正しく実行されていないと感じたら、Visual Query Toolsの代わりにSQLPLUSでクエリを取得して実行することをお勧めします。

Oracleの開発で幸運を祈る。

SQL*Plus FAQをご覧ください。

関連する問題