Microsoft .NET ネットワークを構築しており、バックエンドで Oracle データベースを実行している場合は、バックエンドを SQL Server に移行する必要があります。この質問の中心は、データベースのパフォーマンスを比較することではなく、自分にとって最適なツールを見つけることです。 .NET アーキテクチャの下でこれら 2 つの質問に答えるには、答えは 1 つだけです。それが .NET サーバーです。この記事では、まずネットワーク内に Oracle サーバーが存在する理由を検討し、次にそれを SQL Server に移行する方法について説明し、最後にこの移行の長所と短所について説明します。
システム内の Oracle
ネットワーク上に Oracle サーバーがある場合、それが必要な理由 (誰がそれを使用しているか、どのアプリケーションがそれを使用しているか、どのようなアプリケーションがその上で実行されているかなど) を理解する必要があります。
誰が使っているの?
まず、誰が Oracle サーバーを使用しているかを調べる必要があります。そうしないと、答えが出る前に急いでサーバーを移動すると、大きな間違いにつながる可能性があります。もちろん、本当にこれを実行したい場合は、データベース ユーザーを見つけるのが簡単な方法です。しかし、それでもそうしないことをお勧めします。
ネットワーク管理者は、Oracle の使用状況を監視または記録するための手順を用意している場合があります。開発者は、アプリケーションの開発に現在のサーバーを使用したい場合があります。管理者は、ビジネス上の意思決定を行うために、データベースに保存されているデータに基づいて分析レポートを生成したり、Oracle バックエンドを使用したりする必要がある場合があります。そしてデータベースのユーザーは世界中にいる可能性があります。 Oracle から SQL Server への移行プロセスによってどのユーザーが影響を受けるかを判断するときは、これらの可能性をすべて考慮する必要があります。
どのようなアプリケーションがそれを使用しますか?
ここで、すべてのユーザーに 1 人ずつ質問して、誰が Oracle を使用しているかを調べたとします。その答えは「ノー」です。その場合は、ログ ファイルをチェックして、どのワークステーションがデータベースにアクセスしているかを把握する必要があります。これらのログ ファイルを確認すると、ワークステーションがデータベースにアクセスしているだけでなく、他のサーバーもデータベースにアクセスしていることがわかる場合があります。
さて、ペンを取り、データベースにアクセスしているサーバーを書き留めて、それらのサーバーがデータベースにアクセスしている特定のアプリケーションを調べます。このようなアプリケーションは、データ テーブルに保存されているデータとサーバー上で実行されているアプリケーションを比較することで識別できます。
Oracle サーバー上ではどのようなアプリケーションが実行されていますか?
データベースにアクセスするユーザーと外部アプリケーションがわかったので、次はデータベース サーバー自体でどのアプリケーションが実行されているかを調べる必要があります。これらのアプリケーションは、データベース ストアド プロシージャ (および対応するトリガー、カスタム データ型、セキュリティ設定など) である場合もあれば、Oracle 内で実行されない独立したアプリケーションである場合もあります。サーバーに追加された Oracle 開発ツールに特に注意を払う必要があります。
SQL Server への移行
Oracle サーバーをすぐに取り外して SQL Server をインストールする必要はありません。重要なサーバーを移行する前に、よく考えてください。このプロセスに特に移行という名前が付いているのはなぜですか?それは、移住が必ずしも突然起こるわけではないからです。いくつかのシンプルで合理的な手順を実行すれば、移行プロセスは何の問題もなく完了できます。
アプリケーションをネイティブ アプリケーションおよび外部アプリケーションに移行するには、
次の手順を実行します。
1. 新しい SQL Server をネットワークにインストールします。
2. アプリケーションが使用する「デバイス」とデータテーブルを作成します。
3. アプリケーションによるデータベースへのアクセスを禁止し、アプリケーションをオフラインにします。
4. 現在のデータを Oracle から SQL Server にコピーします。
5. すべてのアプリケーションが新しいデータベースを指すようにします。
6. アプリケーションがデータ テーブルおよびデバイス内の新しいデータにアクセスできるようにします。
SQL Server と Oracle の間でSQL を移行することを検討する
場合、致命的な問題があります。SQL Server と Oracle は、SQL-PL/SQL (Oracle) と Transact-SQL (Microsoft) という 2 つの異なる SQL 言語を話します。
ほとんどの場合、1 つの SQL 言語を使用できれば、おそらく他の SQL 言語も使用できるでしょう。 SQL 関数、演算子、ステートメントなどを考慮して、さまざまな DBMS でサポートされている機能を示す SQL プログラマーズ リファレンスを特別に作成しました。もちろん、これらの SQL 製品の米国サプライヤーが米国標準 SQL (ANSI-SQL) を誠実に遵守しているのであれば、なぜこれほど大きな問題が発生するのでしょうか。
さらに、次の問題も発生する可能性があります:
Oracle の二重テーブル - SQL Server では、select 'x'; などのステートメントが発生することがあります。 Oracle では、このステートメントを select 'x' from Dual; に変換する必要があります。 Dual は Oracle によって生成されるシステム テーブルです。この SQL 構文の問題に加えて、このテーブルは Oracle システム テーブルであるため、SQL Server にコピーできません。
切り捨て -- どちらの DBMS も FLOOR 関数と ROUND 関数をサポートしていますが、Oracle には追加の TRUNC 関数もあります。 Oracle システムで TRUNC 関数を使用している場合は、関連する部分を再編集する必要があり、FLOOE 関数または ROUND 関数への変更を検討する必要がある場合があります。
連結 - SQL Server 7 は ANSI || 接続方法をサポートしませんが、SQL Server 2000 はサポートします。どちらのデータベースでも、接続を表すためにプラス記号 (+) が使用されるようになりましたが、算術演算にはこの記号を使用することをお勧めします。
SQL 言語の移行の問題は、使用している 2 つのサーバーの特定のバージョンによって異なりますが、ほとんどの場合、突然、予期せず発生します。
Oracle を放棄するビジネス ケース
このデータベースの移行は単純な感情的なゲームではなく、Oracle ではなく Microsoft 製品を選択することは、ビジネス ケースによって裏付けられています。オラクルは法廷闘争やプロパガンダ闘争でマイクロソフトを破るために多大なリソースを投入した。ただし、経済的な観点から見ると、Oracle の方が費用対効果が高いわけではありません。さらに、Oracle にはコア製品が 1 つしかなく、Microsoft ほど自信がありません。複雑な販売プロセスに加えて、サポートを提供してくれるより優れた会社を見つけたほうがよいでしょう。会社は健全で繁栄している必要があり、その製品は一般に人気がある必要があります。より強力な敵に遭遇するまで、少なくとも数年間は会社が非常に強力であることが保証される必要があります。
SQL Server に移行すると何が得られますか?
まず、ネットワーク アーキテクチャとの一貫性が高いシステムが得られます。 UNIX システムを管理するための専任担当者は必要ありません。 DBMS に合わせて調整された管理ツールは、これらのネットワーク オペレーティング システム ツールと最適に連携します。
次に、システムは .NET アプリケーションの組み込みサポートを実装します。 .NET アーキテクチャでは SQL Server を使用する必要はありませんが、このサーバーがデフォルトのデータベースです。 Oracle 用の ODBC ドライバーは確かに優れていますが、常に障害が発生する可能性があります。
第三に、.NET ネットワーク下で Oracle を使用する場合のコストは、SQL Server を使用する場合よりも高くなります。 Win2K サーバー ライセンス、VS.NET および Office ライセンスを追加購入すると、割引を受けることができます。
最後に、SQL Server システムを個別に購入した場合でも、Oracle よりも安価になる可能性があります。最近では、Oracle のライセンスを値切るのは歯を抜くような気分になることがあります。営業担当者に価格を尋ねたところ、実際に「余裕はありますか?」と言われたのを覚えています。
概要
.NET ネットワークを構築している場合、SQL Server は Microsoft .NET のコア コンポーネントであるため、DBMS として使用するのが理にかなっています。サーバーアプリケーションスイート。あるプラットフォームから別のプラットフォームへの移行は、慎重に検討して計画する必要がある重要なプロセスです。プラットフォームを切り替える前に、統合され、効果的で、管理が容易で信頼性の高い .NET 基盤を用意する必要があります。