Aktualisieren einer großen Anzahl von Datensätzen in einer Sammlung

Ich habe Sammlung genanntTimeSheet mit ein paar tausend Datensätzen jetzt. Dies wird sich letztendlich auf 300 Millionen Datensätze pro Jahr erhöhen. In diese Sammlung habe ich einige Felder aus einer anderen Sammlung namens eingebettetDepartment In den meisten Fällen werden keine Aktualisierungen vorgenommen, und nur in den seltensten Fällen werden einige Datensätze aktualisiert. Mit selten meine ich nur ein- oder zweimal im Jahr und auch nicht alle Aufzeichnungen, nur weniger als 1% der Aufzeichnungen in der Sammlung.

Sobald eine Abteilung erstellt wurde, wird sie in den meisten Fällen nicht aktualisiert, auch wenn es eine Aktualisierung gibt. Dies wird anfangs durchgeführt (wenn in TimeSheet nicht viele verwandte Datensätze vorhanden sind).

Wenn nun jemand nach einem Jahr eine Abteilung aktualisiert, besteht im schlimmsten Fall die Möglichkeit, dass die Daten eingesammelt werdenTimeSheet Insgesamt werden ungefähr 300 Millionen Datensätze und ungefähr 5 Millionen übereinstimmende Datensätze für die Abteilung vorliegen, die aktualisiert wird. Die Aktualisierungsabfragebedingung befindet sich in einem Indexfeld.

Da dieses Update zeitaufwändig ist und Sperren erstellt, frage ich mich, ob es eine bessere Möglichkeit gibt, dies zu tun. Eine Option, die ich denke, ist die stapelweise Ausführung einer Aktualisierungsabfrage durch Hinzufügen einer zusätzlichen Bedingung wieUpdatedDateTime> somedate && UpdatedDateTime < somedate.

Andere Details:

Eine einzelne Dokumentgröße kann etwa 3 oder 4 KB betragen. Wir haben einen Replikatsatz, der drei Replikate enthält.

Gibt es einen anderen besseren Weg, dies zu tun? Was denkst du über diese Art von Design? Was denkst du, wenn es Zahlen gibt, die ich weniger wie unten angegeben habe?

1) 100 Millionen Datensätze insgesamt und 100.000 übereinstimmende Datensätze für die Aktualisierungsabfrage

2) 10 Millionen Datensätze insgesamt und 10.000 übereinstimmende Datensätze für die Aktualisierungsabfrage

3) 1 Million Datensätze und 1000 übereinstimmende Datensätze für die Aktualisierungsabfrage

Hinweis: Die Sammlungsnamendepartment undtimesheet, und ihr Zweck ist fiktiv, nicht die wirklichen Sammlungen, sondern die Statistiken, die ich gegeben habe, sind wahr.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage