MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
SQL Server - BULK INSERTのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
SQL Server - BULK INSERT
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <code>BULK INSERT</code>文は、SQL Serverで大量のデータを高速にテーブルに取り込むための機能である。<br> 通常のINSERT文と比較して、効率的にデータを取り込むことができる。<br> <br> <syntaxhighlight lang="tsql"> -- 使用例 BULK INSERT TargetTable FROM 'C:\Data\source.txt' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' ); </syntaxhighlight> <br> 重要な特徴として、BULK INSERT文はトランザクションログへの書き込みを最小限に抑えることで高速な処理を実現している。<br> これは、大量データの取り込み時に大きな効果を発揮する。<br> <br> データソースとしては、カンマ区切り (CSV) や タブ区切り (TSV) 等の形式のテキストファイルが使用できる。<br> <code>FIELDTERMINATOR</code>オプションは列の区切り文字、<code>ROWTERMINATOR</code>オプションは行の区切り文字を指定する。<br> <br> パフォーマンスに影響を与える重要な要素として、以下に示すような設定がある。<br> <syntaxhighlight lang="tsql"> WITH ( BATCHSIZE = 1000, TABLOCK, CHECK_CONSTRAINTS = OFF, FIRE_TRIGGERS = OFF ) </syntaxhighlight> <br> これらのオプションを適切に設定することにより、パフォーマンスを向上させることができる。<br> 特に、<code>TABLOCK</code>オプションは、テーブルレベルでのロックを取得することにより、行レベルのロックによるオーバーヘッドを避けることができる。<br> <br> <u>※注意</u><br> <u>BULK INSERT文を使用する場合は、ファイルに対する適切なアクセス権限が必要となる。</u><br> <u>また、データファイルの形式とテーブルのスキーマが正確に一致している必要がある。</u><br> <br> エラーハンドリングについては、<code>ERRORFILE</code>オプションを使用することにより、取り込みに失敗した行を別ファイルに出力して後から確認することができる。<br> <syntaxhighlight lang="tsql"> WITH ( ERRORFILE = 'C:\Errors\error.txt', MAXERRORS = 10 ) </syntaxhighlight> <br> BULK INSERT文は、大量データの取り込みに非常に効果的なツールであるが、適切な設定と事前準備が重要となる。<br> <br><br> == BULK INSERTの例 == 下記は、CSVファイル(カンマ区切り)をインポートする際の例である。<br><br> * 文字コードがShift-JISの場合 <syntaxhighlight lang="tsql"> BULK INSERT T_Table FROM 'D:\UnicodeFile.txt' WITH ( DATAFILETYPE = 'char', FIELDTERMINATOR = ',' ); GO </syntaxhighlight> <br> * 文字コードがUNICODEの場合 (SQL Server 2014 R2以前) *: ただし、SQL Server 2014 R2以前では、下記のクエリを実行しても UTF-8形式のファイルは取り込めない。 *: (UTF-8固有の文字が無いUTF-8形式のファイルはインポートできる) <syntaxhighlight lang="tsql"> BULK INSERT T_Table FROM 'D:\UnicodeFile.txt' WITH ( DATAFILETYPE = 'widechar', FIELDTERMINATOR = ',' ); GO </syntaxhighlight> <br> * 文字コードがUTF-8の場合 (SQL Server 2014 R2以降) *: SQL Server 2014 R2以降では、UTF-8形式のファイルをインポートすることが出来る。 <syntaxhighlight lang="tsql"> BULK INSERT T_Table FROM 'D:\UnicodeFile.txt' WITH ( DATAFILETYPE = 'char', CODEPAGE = '65001', FIELDTERMINATOR = ',' ); GO </syntaxhighlight> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:SQL_Server]]
SQL Server - BULK INSERT
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse