Buduję system do aktualizowania dużych ilości danych poprzez różne kanały CSV. Zwykle po prostu pętlę po każdym wierszu w kanale, wykonaj kwerendę wyboru, aby sprawdzić, czy element już istnieje i wstaw/zaktualizuj element w zależności, czy istnieje, czy nie.Najlepsze praktyki dotyczące wstawiania/aktualizowania dużej ilości danych w SQL Server 2008
Uważam, że ta metoda nie jest bardzo skalowalna i może wpłynąć na serwer przy większych plikach. Moim rozwiązaniem jest przeglądanie elementów w normalny sposób, ale przechowuj je w pamięci. Następnie za każde 100 lub więcej elementów wybierz jedną z tych 100 pozycji i uzyskaj listę istniejących elementów w bazie danych, które pasują do siebie. Następnie połącz instrukcje insert/update razem i uruchom je w bazie danych. Zasadniczo ograniczyłoby to liczbę podróży do bazy danych.
Czy jest to wystarczająco skalowalne rozwiązanie i czy istnieją przykładowe samouczki dotyczące importowania dużych plików do wydajnego środowiska?
Dzięki
+1 za użycie WSTAWIENIA I WZMOCNIENIA BULKOWEGO –
Dzięki za sugestię. Powodem, dla którego przechodzę przez każdy element, jest to, że muszę wykonać jakąś procedurę sprawdzania poprawności i formatowania przed dodaniem go do bazy danych. Następnie przekaże je użytkownikowi, jeśli wystąpią jakiekolwiek problemy z samym plikiem danych. Podoba mi się pomysł połączenia danych, ale przyjrzę się temu. – markvpc
Możesz także z łatwością sprawdzać poprawność i formatowanie w sposób oparty na ustawieniach. Zapętlanie poszczególnych rekordów jest prawie zawsze złym wyborem i nie powinieneś zastanawiać się nad tym, dopóki wszystkie inne opcje nie zostaną wyeliminowane. – HLGEM