Son zamanlarda 500 milyona yakın satır içeren bir tabloya NULL özellikli bir bit sütunu ekledim. Sütunda bir varsayılan yoktur, ancak tüm ekler 0 veya 1 değerini belirtir ve varolan tüm satırlara 0 veya 1 atamak için bir kerelik bir rutin çalıştırdım (küçük gruplar halinde satırları güncelleyerek). Artık her satırın bu sütunda 0 veya 1 olması gerekir.
Bit sütununu nullable yapmak istiyorum ancak bunu denediğimde ALTER TABLE t1 ALTER COLUMN c1 bit not null
, 3 dakika boyunca çalışmaya başladı ve tabloya tüm okumaları engellediği için durdurdum ve tamamlanması uzun zaman alacağından şüphelendim . Çok uzun sürmeyebilir ama çok fazla kullanılamazlık riskini alamadım. Geri alma işlemi 6 dakika sürdü.
Tamamlanması potansiyel saatler olmadan sütunu nasıl sıfırlanamaz hale getirebileceğime dair bir öneriniz var mı? Ayrıca, ALTER TABLE ALTER COLUMN
başlayıp iptal ettiğim ifadenin ne kadar sürede tamamlanacağını tahmin etmenin herhangi bir yolu var mı?
SQL Server 2017 Web Edition kullanıyorum.
SELECT c1, count(*) FROM t1 GROUP BY c1
, çalıştırmak için yaklaşık 9 dakika sürdü koştu . Bundan sonraki asılALTER TABLE ALTER COLUMN
ifadenin tamamlanması 25 dakika sürdü. Çok kötü değil.