Mam aplikację Lazur w chmurze z bazą danych SQL Azure. Mam rolę roboczą, która musi wykonać przetwarzanie + przetwarzania w pliku (do ~ 30 milionów wierszy), więc nie mogę bezpośrednio używać BCP lub SSIS.Równoległe wstawianie zbiorcze za pomocą SqlBulkCopy i Azure
Obecnie używam SqlBulkCopy, jednak wydaje mi się to zbyt wolne, ponieważ widziałem czasy ładowania do 4-5 minut dla 400k wierszy.
Chcę uruchomić moje wkładki luzem równolegle; jednak czytając artykuły o importowaniu danych w sposób równoległy/kontrolujący zachowanie blokady, mówi, że SqlBulkCopy wymaga, aby tabela nie zawierała indeksów klastrowych i trzeba określić tablelock (blokada BU). Jednak tabele azure musi mieć indeks klastrowany ...
Czy jest możliwe nawet równoległe użycie SqlBulkCopy w tej samej tabeli w SQL Azure? Jeśli nie, to jest inny API (który mogę użyć w kodzie), aby to zrobić?
Ass Matt mówi. Przepustowość wydaje mi się właściwa. Upewnij się, że nie ma indeksów w tabelach poza indeksem klastrowym. –
Skończyło się na jednoczesnym wstawianiu do tabel tymczasowych, a następnie robieniu wstawiania z tych tabel tymczasowych do tabel głównych (w trybie szeregowym). Wydawało mi się to znacznie szybsze, ponieważ wstawienie z tymczasowych stołów zajęło około 4-5 minut na około 2 miliony rzędów. – kyliod