Veritabanımızda az çok şuna benzeyen büyük bir tablo var:
CREATE TABLE dbo.production_data
(
pd_id BIGINT PRIMARY KEY,
serial NVARCHAR(16) NOT NULL UNIQUE,
...
);
ama şimdi seri alanın boyutu düştü, bu yüzden bunu 32 olarak değiştirmek istiyorum. Visual Studio şema karşılaştırma aracı bunu yapmanızı önerir:
DROP INDEX ux_production_data_serial ON dbo.production_data;
GO
ALTER TABLE dbo.production_data ALTER COLUMN serial NVARCHAR(32) NOT NULL;
GO
CREATE INDEX ux_production_data_serial ON dbo.production_data(serial ASC);
Bu gerçekten gerekli mi? Ya da daha çok bunu yapmanın ultra tasarruflu bir yolu gibi mi?
Ayrıca benzersiz dizini yeniden oluştururken masam kilitlenecek mi? Çünkü bu büyük bir sorun olurdu (tablo 30 milyon satır var ve sanırım endeksi yeniden oluşturmak biraz zaman alacaktır), çünkü bir sonraki bakım penceresi gelecekte birkaç aydır. Alternatiflerim neler?