Optimizing Bulk Import Performance

This topic describes options for optimizing the bulk import of data into a table in Microsoft SQL Server by using a bcp command, BULK INSERT statement, or OPENROWSET(BULK...) function (Transact-SQL).Aby import zbiorczy lub eksportowania danych tak szybko jak to możliwe, ważne jest zrozumieć czynników, które wpływają na wydajność i kwalifikatory polecenia, które są dostępne do zarządzania wydajnością.Jeśli to możliwe, należy użyć Transact-SQL Instrukcja import zbiorczy dane SQL Server ponieważ Transact-SQL jest szybsze niż BCP.

Uwaga

Porównanie tych metod zobacz About Bulk Import and Bulk Export Operations.

W jaki sposób, aby zwiększyć najlepszą wydajność operacji import zbiorczy określonego wpływają następujące czynniki:

  • Decyduje o tym, czy tabela ma ograniczenia, wyzwalacze lub oba.

  • Używane przez bazę danych modelu odzyskiwanie.

    Aby uzyskać więcej informacji zobaczRecovery Model Overview.

  • Czy tabela, do którego dane są kopiowane jest pusta.

  • Czy tabela zawiera indeksy.

  • Czy określono jest TABLOCK.

  • Czy dane są kopiowane z jednego klient lub skopiowane równolegle z wielu klientów.

  • Czy ma być kopiowana między dwoma komputerami, na którym dane SQL Server jest uruchomiony.

Important noteImportant Note:

W SQL Server 2005 i nowszych wersji, importu zbiorczego optymalizacji są dostępne po włączeniu wyzwalaczy. Przechowywanie wersja wiersza jest używany wyzwalaczy i przechowuje wersje wiersza w magazynie wersja w tempdb.Zanim użytkownik może zbiorczej importowanie dużych partia rekordy danych za pomocą wyzwalaczy, może być konieczne rozwinięcie rozmiar tempdb , aby uwzględnić wpływ wyzwalaczy na magazynu wersja.

Informacje wpływu tych czynników zbiorczej importować scenariuszy, zobacz Guidelines for Optimizing Bulk Import.

Metody Optymalizacja import zbiorczy

Aby przyspieszyć import zbiorczy danych, SQL Server udostępnia następujące metody:

  • Za pomocą minimalnych rejestrowania

    Proste model odzyskiwanie minimalny zestaw dzienników większość operacji zbiorczej.

    W przypadku bazy danych w obszarze pełnego model odzyskiwanie, wszystkie operacje wstawiania wierszy, które są wykonywane podczas import zbiorczy pełni są rejestrowane dziennik transakcji.Przywozu dużych danych może to spowodować dziennik transakcji szybko wypełnić.W przypadku operacji importu zbiorczego minimalne rejestrowanie jest bardziej efektywne niż pełne rejestrowanie i zmniejsza prawdopodobieństwo, że operacja importu zbiorczego wypełni obszar rejestrowania.Minimalny zestaw rejestrować operacji importu zbiorczego, na bazie danych, które zwykle używa pełny model odzyskiwanie, bazy danych można najpierw przełączyć się do rejestrowane zbiorczej model odzyskiwanie.Po zbiorczej importowanie danych, przełącz model odzyskiwanie do pełnego model odzyskiwanie.Aby uzyskać więcej informacji zobaczConsiderations for Switching from the Full or Bulk-Logged Recovery Model.

    Uwaga

    Wstawionych wierszy minimalny zestaw są rejestrowane, jeśli zoptymalizowane zbiorczej stosuje się rejestrowanie; w przeciwnym razie wstawionych wierszy pełni są rejestrowane dziennik transakcji.Aby uzyskać informacje na temat do wykonywania operacji importu zbiorczego minimalny zestaw zarejestrowane i podczas operacji importu zbiorczego są rejestrowane zobacz Operations That Can Be Minimally Logged i Prerequisites for Minimal Logging in Bulk Import.

  • Importowanie danych równolegle z wielu klientów do pojedynczej tabela

    SQL Server zezwala na danych, które mają być importowane do pojedynczej tabela z kilku klientów równocześnie zbiorczej.Wszystkie mechanizmy import zbiorczy trzy obsługuje równoległych import danych.Może to zwiększyć wydajność operacji importowania danych.

    Aby uzyskać więcej informacji zobacz Importing Data in Parallel with Table Level Locking.

  • Za pomocą partii

    Aby uzyskać informacje dotyczące używania partii podczas importowania danych oraz informacje dotyczące kwalifikatory polecenia służące do zarządzania partii zobacz Managing Batches for Bulk Import.

    Uwaga

    Klauzula OPENROWSET opcji BULK nie obsługuje rozmiaru wsadu Sterowanie.

  • Wyłączanie wyzwalaczy

    Wyłączanie wyzwalaczy może zwiększyć wydajność.

    Aby uzyskać więcej informacji na temat wpływu wyzwalacza wykonanie operacji importu zbiorczego i sposobów włączania lub wyłączania wyzwalaczy zobacz Controlling Trigger Execution When Bulk Importing Data.

  • Wyłączanie ograniczenia

    Aby uzyskać informacje na temat wpływu ograniczenie sprawdzanie dla operacji importu zbiorczego i sposób włączyć lub wyłączyć sprawdzanie i klucz obcy ograniczeń tabela zobacz Controlling Constraint Checking by Bulk Import Operations.

  • Porządkowanie danych w pliku danych

    Domyślnie operacji importu zbiorczego zakłada, że plik danych jest nieuporządkowana.Jeśli tabela ma indeks klastrowany BCP narzędzie instrukcja BULK INSERT i funkcja OPENROWSET(BULK…) (Transact-SQL) można określić, w jaki sposób sortowane są dane w pliku danych podczas operacji importu zbiorczego. Jest to opcjonalne dla danych w pliku danych, które mają być sortowane w takiej samej kolejności, jak w tabela.Jednak można zwiększyć wydajność operacji importu zbiorczego, jeśli zostanie określony, tej samej kolejności dla pliku danych w tabela.

    Aby uzyskać więcej informacji zobacz Controlling the Sort Order When Bulk Importing Data.

  • Wontrolling zachowania blokowania

    Aby uzyskać informacje dotyczące sposobu określania zachowania blokowania podczas operacji importu zbiorczego zobacz Controlling Locking Behavior for Bulk Import.

  • Importowanie danych w format macierzysty

    Aby uzyskać więcej informacji zobacz Using Native Format to Import or Export Data i Using Unicode Native Format to Import or Export Data.