sql >> データベース >  >> RDS >> Sqlserver

Entity FrameworkでCreateIfNotExistsを高速化する方法はありますか?

    はい。ポイントは、それほど頻繁に実行する必要のない統合テストにのみ実際のデータベースを使用することです。通常、統合テストのセット全体はビルド サーバーでのみ実行されます。

    これは 単体テスト時の EF の初期化が遅い (x86 への切り替えを試みることができます)。ビューの生成にも時間がかかります。 ビューは事前に生成できます これは通常、実際のシステムの起動と初期化を減らすために行われますが、ビューの事前生成を使用して単体テストを高速化する場合は、テストからビルドに時間を移動するだけなので、あまり役に立ちません.

    歩き回るということは、単純な古い SQL スクリプトを使用することを意味します。この操作に必要な追加の時間は、その SQL の生成に費やされる場合があります。通常のアプリケーションの実行では通常2回以上必要ないため、SQLはキャッシュされていないと思いますが、EFにそのSQLの最も重要な部分を提供し、どこかにキャッシュして、必要なたびに自分で実行するように依頼できます. EF は、テーブルと制約の SQL を提供できます:

    var dbSql = ((IObjectContextAdapter) context).ObjectContext.CreateDatabaseScript();
    

    データベースを作成して一緒に使用するには、独自の小さな SQL が必要です。次のスクリプトのようなものでも十分です:

    CREATE DATABASE YourDatabaseName
    
    USE YourDatabaseName
    

    また、これを機能させ、プロセスを制御するには、最初にコードでデータベース生成をオフにする必要があります。

    Database.SetInitializer<YourContextType>(null);
    

    データベース作成 SQL を実行する場合、Master を指す別の接続文字列が必要になります。 データベース。




    1. CSVをMySQLにインポートする

    2. 別のテーブルからIDを持つ行を選択する

    3. WindowsへのOracleDatabase12cソフトウェアのインストール

    4. AccessでSQLServerを使用する必要があるのはいつですか。 (ヒント:ほとんどの場合)