Ето нещо, което правя. Това не води до нулев престой, но може да завърши за по-малко от секунда.
Създайте база данни, която има само елементи на интерфейс към вашата реална база данни. В моя случай той съдържа само дефиниции на изгледи и всички потребителски заявки преминават през тази база данни.
Създавайте нова база данни всяка вечер. Когато е направено, актуализирайте дефинициите на изгледа, за да се отнасят към новата база данни. Бих препоръчал или да изключите потребителския достъп до базата данни, съдържаща изгледите, докато ги актуализирате, или да изтриете всички изгледи и да ги създадете отново - това предотвратява частичен достъп до старата база данни. Тъй като създаването на изгледи е бързо, това трябва да бъде много бърза операция.
Ние правим всичко това чрез работа. Всъщност, преди да променим производствените изгледи, ние тестваме създаването на изглед в друга база данни, за да сме сигурни, че всички работят.
Очевидно, ако използвате alter view
вместо да се изисква последователност във всички изгледи, тогава няма престой, а само кратък период на непоследователност.