OLEDB
Kiedy FastLoad nie jest takie Fast
116. Spotkanie Data Community Poland, Warszawa 10.05.2018.
Bartosz Ratajczyk
Konsultant SQL Server @ 7N
Trener @ CBSG, Stacja.IT
Programista baz danych i aplikacji
Prelegent
Członek Komisji Rewizyjnej DC MCSE: Data Platform, MCT
http://bartekr.net | b.ratajczyk@gmail.com
O czym to ja dziś miałem?
OLE DB - kiedy FastLoad nie jest takie fast
Awaria zasilania
• Zabrakło miejsca na dysku podczas przetwarzania pakietu SSIS
• Mechanizm: zasilenie danych do pomocniczej tabeli (z kompresją
PAGE), po zasileniu przełączenie między tabelami
• Po awarii: tabela docelowa i tymczasowa mają prawie tyle samo
rekordów, ale tymczasowa jest kilka razy większa od drugiej
TableName # Records Reserved (KB) Data (KB) Indexes (KB) Unused (KB)
TableA 238 659 266 28 179 200 28 123 264 52 376 3 560
TableA_TEMP 239 645 078 162 601 616 162 577 856 400 23 360
Środowisko
• Baza w trybie odzyskiwania SIMPLE
• Interesuje nas minimalne logowanie
• TableA, TableA_TEMP
• Tabela główna (indeks klastrowy) i pomocnicza (sterta)
• Każda ma jedną partycję
• DATA_COMPRESSION = PAGE
• Zasilanie tabeli TEMP, tworzenie indeksu, przełączenie partycji
OLE DB - kiedy FastLoad nie jest takie fast
Dlaczego to działa?
Bulk Update Locks
Bulk update (BU) locks allow multiple threads to bulk load data concurrently
into the same table while preventing other processes that are not bulk
loading data from accessing the table. The Database Engine uses bulk update
(BU) locks when both of the following conditions are true.
• You use the Transact-SQL BULK INSERT statement, or the
OPENROWSET(BULK) function, or you use one of the Bulk Insert API
commands such as .NET SqlBulkCopy, OLEDB Fast Load APIs, or the ODBC
Bulk Copy APIs to bulk copy data into a table.
• The TABLOCK hint is specified or the table lock on bulk load table option is
set using sp_tableoption.
https://technet.microsoft.com/en-us/library/jj856598(v=sql.110).aspx
Winowajca
OLEDB Destination FastLoad

More Related Content

PDF
[PL] SharePoint Coffee Talk: Co nowego w Microsoft SharePoint 2016
PDF
AnalyticsConf : Azure SQL Data Warehouse
ODP
Drupal Feeds - Wiktor Burbo
PDF
SQL Server + docker - pierwsze kroki
PPTX
Jak działa rekurencyjne CTE?
PDF
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
PPTX
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
PPTX
Zautomatyzuj swój proces wdrażania projektów SSIS
[PL] SharePoint Coffee Talk: Co nowego w Microsoft SharePoint 2016
AnalyticsConf : Azure SQL Data Warehouse
Drupal Feeds - Wiktor Burbo
SQL Server + docker - pierwsze kroki
Jak działa rekurencyjne CTE?
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
Zautomatyzuj swój proces wdrażania projektów SSIS

More from Bartosz Ratajczyk (11)

PPTX
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
PPTX
Szkolenia i certyfikacjesqlserver2016_plssug99
PPTX
Podstawy ETL z SSIS
PPTX
XML w SQL Server w praktyce
PPTX
Jak szybko przetwarzasz hurtowe ilości XML?
PPTX
Operacje minimalnie logowane
PPTX
Po co mi Temporal Tables?
PPTX
Co to te CTE?
PPTX
O co chodzi z FILESTREAM?
PPTX
Alerty WMI
PPTX
Czy mi się przyda hierarchyid?
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
Szkolenia i certyfikacjesqlserver2016_plssug99
Podstawy ETL z SSIS
XML w SQL Server w praktyce
Jak szybko przetwarzasz hurtowe ilości XML?
Operacje minimalnie logowane
Po co mi Temporal Tables?
Co to te CTE?
O co chodzi z FILESTREAM?
Alerty WMI
Czy mi się przyda hierarchyid?
Ad

OLE DB - kiedy FastLoad nie jest takie fast

  • 1. OLEDB Kiedy FastLoad nie jest takie Fast 116. Spotkanie Data Community Poland, Warszawa 10.05.2018.
  • 2. Bartosz Ratajczyk Konsultant SQL Server @ 7N Trener @ CBSG, Stacja.IT Programista baz danych i aplikacji Prelegent Członek Komisji Rewizyjnej DC MCSE: Data Platform, MCT http://bartekr.net | b.ratajczyk@gmail.com
  • 3. O czym to ja dziś miałem?
  • 5. Awaria zasilania • Zabrakło miejsca na dysku podczas przetwarzania pakietu SSIS • Mechanizm: zasilenie danych do pomocniczej tabeli (z kompresją PAGE), po zasileniu przełączenie między tabelami • Po awarii: tabela docelowa i tymczasowa mają prawie tyle samo rekordów, ale tymczasowa jest kilka razy większa od drugiej TableName # Records Reserved (KB) Data (KB) Indexes (KB) Unused (KB) TableA 238 659 266 28 179 200 28 123 264 52 376 3 560 TableA_TEMP 239 645 078 162 601 616 162 577 856 400 23 360
  • 6. Środowisko • Baza w trybie odzyskiwania SIMPLE • Interesuje nas minimalne logowanie • TableA, TableA_TEMP • Tabela główna (indeks klastrowy) i pomocnicza (sterta) • Każda ma jedną partycję • DATA_COMPRESSION = PAGE • Zasilanie tabeli TEMP, tworzenie indeksu, przełączenie partycji
  • 8. Dlaczego to działa? Bulk Update Locks Bulk update (BU) locks allow multiple threads to bulk load data concurrently into the same table while preventing other processes that are not bulk loading data from accessing the table. The Database Engine uses bulk update (BU) locks when both of the following conditions are true. • You use the Transact-SQL BULK INSERT statement, or the OPENROWSET(BULK) function, or you use one of the Bulk Insert API commands such as .NET SqlBulkCopy, OLEDB Fast Load APIs, or the ODBC Bulk Copy APIs to bulk copy data into a table. • The TABLOCK hint is specified or the table lock on bulk load table option is set using sp_tableoption. https://technet.microsoft.com/en-us/library/jj856598(v=sql.110).aspx

Editor's Notes

  • #11: W ramach demo: Backup bazy źródłowej (opcjonalnie) Utworzenie katalogu SSIS (jeśli nie istnieje) Restore bazy SSISDB Rozwinięcie katalogu SSIS – wszystkie elementy pokazują się bez problemu Pokazanie zmiennych środowiskowych – nadal wszystko działa Weryfikacja zmiennych środowiskowych z PowerShell – problem (polecenia z pliku PowerShell.txt) Uruchomienie walidacji – błąd Wytłumaczenie powodu