Aktualizacja dużej liczby rekordów w kolekcji

Mam kolekcję o nazwieTimeSheet mając teraz kilka tysięcy rekordów. To w końcu zwiększy liczbę rekordów do 300 milionów w ciągu roku. W tej kolekcji osadzam kilka pól z innej kolekcji o nazwieDepartment który w większości nie dostanie żadnych aktualizacji i tylko niektóre rekordy zostaną zaktualizowane. Rzadko mam na myśli tylko raz lub dwa razy w roku, a także nie wszystkie rekordy, tylko mniej niż 1% zapisów w kolekcji.

Najczęściej po utworzeniu działu nie ma żadnej aktualizacji, nawet jeśli jest aktualizacja, zostanie ona wykonana początkowo (gdy nie ma zbyt wielu powiązanych rekordów w arkuszu TimeSheet)

Teraz, jeśli ktoś zaktualizuje dział po roku, w najgorszym przypadku zbierane są szanseTimeSheet będzie miał około 300 milionów rekordów w całości i około 5 milionów pasujących rekordów dla działu, który zostanie zaktualizowany. Warunek zapytania aktualizacji będzie znajdował się w polu indeksu.

Ponieważ ta aktualizacja jest czasochłonna i tworzy blokady, zastanawiam się, czy jest jakiś lepszy sposób, aby to zrobić? Jedną z opcji, o której myślę, jest uruchomienie zapytania o aktualizację w partiach, dodając dodatkowy warunekUpdatedDateTime> somedate && UpdatedDateTime < somedate.

Inne szczegóły:

Rozmiar pojedynczego dokumentu może wynosić około 3 lub 4 KB. Mamy zestaw replik zawierający trzy repliki.

Czy jest jakiś inny lepszy sposób na to? Co sądzisz o takim projekcie? Co sądzisz, jeśli podane liczby są mniej podobne do poniższych?

1) 100 milionów rekordów i 100 000 pasujących rekordów dla zapytania o aktualizację

2) 10 milionów rekordów ogółem i 10 000 rekordów pasujących do zapytania o aktualizację

3) 1 milion wszystkich rekordów i 1000 pasujących rekordów dla zapytania o aktualizację

Uwaga: Nazwy kolekcjidepartment itimesheet, a ich cel jest fikcyjny, a nie prawdziwe zbiory, ale statystyki, które podałem, są prawdziwe.

questionAnswers(1)

yourAnswerToTheQuestion