Scenariusz:
- dwie bazy danych: DB_A i DB_Archive z jedną bardzo dużą tabelą o nazwie tableA.
- każdego dnia rekordy starsze niż 60 dni są usuwane z DB_A i przenoszone do DB_Archive głównie po to, aby pozostawić „oddzieloną” rzecz, ponieważ tabela A jest bardzo pytana w DB_A o rekordy z ostatnich 2 miesięcy.
Chcę pozbyć się tego procesu, ponieważ jest on powolny i zużywa dużo zasobów. Zastanawiam się nad implementacją partycjonowania tabeli na DB_A z funkcją partycji w kolumnie daty i przechowywaniem wszystkich rekordów <2 miesiące na jednej partycji i wszystkich rekordów> 2 miesiące na innej partycji. Moje pytania:
- czy ten scenariusz będzie się zachowywał tak, jak gdybym miał 2 różne bazy danych? Jeśli zapytam moją tabelę A o rekordy> getdate () - 30, czy będzie ona czytać partycję archiwizującą?
- Miałem też podzielić indeksy, prawda?
- Jak mam poradzić sobie z tym, że jutro moja funkcja partycji „zmieni się”, to znaczy, jeśli utworzę ją dzisiaj (2 lipca, jej zakres będzie 2 maja, ale jutro będzie 3 maja). Czy mogę utworzyć funkcję dynamicznej partycji?