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

SQLServerに200万行をすばやく挿入する

    1. DataSetでテキストファイルのデータを読む方が良いと思います

    2. SqlBulkCopyをお試しください -C#アプリからSQLへの一括挿入

      // connect to SQL
      using (SqlConnection connection = new SqlConnection(connString))
      {
          // make sure to enable triggers
          // more on triggers in next post
          SqlBulkCopy bulkCopy = new SqlBulkCopy(
              connection, 
              SqlBulkCopyOptions.TableLock | 
              SqlBulkCopyOptions.FireTriggers | 
              SqlBulkCopyOptions.UseInternalTransaction,
              null
              );
      
          // set the destination table name
          bulkCopy.DestinationTableName = this.tableName;
          connection.Open();
      
          // write the data in the "dataTable"
          bulkCopy.WriteToServer(dataTable);
          connection.Close();
      }
      // reset
      this.dataTable.Clear();
      

    または

    上部でステップ1を実行した後

    1. DataSetからXMLを作成する
    2. XMLをデータベースに渡し、一括挿入を行います

    詳細については、この記事を確認してください:C#DataTableとSQLサーバーのOpenXML関数を使用したデータの一括挿入

    ただし、200万レコードではテストされていませんが、200万レコードをロードして挿入する必要があるため、マシン上のメモリを消費します。



    1. カンマ区切りの文字列を解析して、Where句の文字列のINリストを作成します

    2. sp_prepare/sp_prepexecのユースケース

    3. 列をNULLからNOTNULLに変更する方法

    4. データベースバックアップ-MariaDBMariabackupとPerconaXtrabackupの比較