Diğer veritabanları hakkında soru sorduğunuz için, işte Oracle hakkında bazı bilgiler.
Oracle tablosuna bir NULL sütunu eklemek, yalnızca veri sözlüğünü güncellediği için çok hızlı bir işlemdir. Bu, çok kısa bir süre için masanın üzerinde özel bir kilit oluşturur. Bununla birlikte, depedant depolanan prosedürleri, görünümleri, tetikleyicileri vb. Geçersiz kılacaktır. Bunlar otomatik olarak yeniden derlenecektir.
Buradan gerekirse ONLINE maddesini kullanarak dizin oluşturabilirsiniz. Yine, sadece çok kısa veri sözlüğü kilitlenir. Dizine eklenecek şeyleri arayan tüm tabloyu okur, ancak bunu yaparken kimseyi engellemez.
Bir yabancı anahtar eklemeniz gerekiyorsa, bunu yapabilir ve Oracle'ın verilerin doğru olduğuna dair size güvenmesini sağlayabilirsiniz. Aksi takdirde, tüm tabloyu okuması ve yavaş olabilecek tüm değerleri doğrulaması gerekir (önce dizininizi oluşturun).
Yeni sütunun her satırına varsayılan veya hesaplanan bir değer koymanız gerekiyorsa, büyük bir güncelleme veya belki de yeni verileri dolduran küçük bir yardımcı program çalıştırmanız gerekir. Bu yavaş olabilir, özellikle sıralar çok büyürse ve artık bloklarına sığmazsa. Bu işlem sırasında kilitlenme yönetilebilir. Uygulamanızın halen çalışmakta olan eski sürümünün bu sütunu bilmemesi nedeniyle sinsi bir tetikleyiciye veya bir varsayılan belirtmeye ihtiyacınız olabilir.
Oradan, uygulama sunucularınızda kodun yeni sürümüne geçiş yapabilirsiniz ve kod çalışmaya devam eder. Sinsi tetiğinizi bırakın.
Alternatif olarak, bu tür şeyleri yapmak için tasarlanmış bir kara kutu olan DBMS_REDEFINITION'ı kullanabilirsiniz.
Tüm bunları test etmek o kadar zahmetli ki, büyük bir sürümü yayınladığımızda Pazar sabahı erken saatlerde bir kesinti yaşıyoruz.