8 kb aşan satır taşma veri

8,060 Bayt satır başına en fazla bir tablo içerebilir.De SQL Server 2008, bu kısıtlamayı içeren tablolar için rahat varchar, nvarchar, varbinary, sql_variant, veya CLR kullanıcı tanımlı tür sütunlar.Bu sütunların her birinin uzunluğu 8.000 bayt sınırında hala düşülmesi gereken; Ancak, birleşik genişliklerini 8,060 bayt sınırını aşabilir.Bu geçerli varchar, nvarchar, varbinary, sql_variant, veya CLR kullanıcı tanımlı tür sütunları oluşturulan ve değiştirilmiş, ve aynı zamanda ne zaman veri eklendiğinde veya güncelleştirildiğinde için olduklarında.

Not

Bu kısıtlama geçerli değildir varchar(max), nvarchar(max), varbinary(max), text, image, veya xml sütunlar.Bu sütunları depolama birimi hakkında daha fazla bilgi için bkz: Büyük değer veri türleri'ni kullanma, Metin ve resim veri kullanma, ve xml verilerini kullanma.

Satır taşma dikkat edilmesi gereken noktalar

Ne zaman, bir araya varchar, nvarchar, varbinary, sql_variant, veya satır başına 8,060 bayt aşan CLR kullanıcı tanımlı tür sütunlar aşağıdaki düşünün:

  • 8,060 Bayt satır boyutu sınırı açısından etkileyecektir performans nedeniyle SQL Server yine de, sayfa başına 8 kb sınırı korurBirlikte, varchar, nvarchar, varbinary, sql_variant, veya clr kullanıcı tanımlı tür sütunları bu sınırı aşan SQL Server Veritabanı Altyapısı kaydı sütunun üzerindeki 24-bayt işaretçi koruyarak row_overflow_data ayırma birimi başka bir sayfaya genişleyebileceği en fazla genişliği ile taşırorijinal sayfa. Kayıtları güncelleştirme işlemlerini göre geciktirmeden büyük kayıtları başka bir sayfa taşımak dinamik olarak oluşur.Kısaltmak kayıtları güncelleştirme işlemlerini IN_ROW_DATA ayırma birimi özgün sayfa geri taşınan kayıtların neden olabilir.Ayrıca, sorgulama ve diğer gerçekleştirme işlemleri seçin, bu kayıtları eşzamanlı olarak saat uyumsuz olarak yerine işlendiği sıralar veya birleştirmeleri içeren büyük kayıtları gibi satır taşması verisi işleme süresini yavaşlatır.

    Bu nedenle, tasarlarken bir tablo ile çok varchar, nvarchar, varbinary, sql_variant, veya CLR kullanıcı tanımlı tür sütunlar için büyük olasılıkla satırları yüzdesi düşünün Aşım ve bu taşma veriler olduğu büyük bir olasılıkla sorgulanmasını sıklığı.Vardır, sık sık sorgulamaları pek çok sayıda satır taşması verisi büyük olasılıkla başka bir tabloya bazı sütunlar taşınır böylece tablo normalleştirme düşünün.Bu zaman uyumsuz bir JOIN işleminde sonra sorgulanabilir.

  • Tek tek sütun uzunluğunu hala çok 8.000 bayt için sınırı içinde almaları gereken varchar, nvarchar, varbinary, sql_variantve CLR kullanıcı tanımlı tür sütunlar.Kendi birleşik uzunlukları 8,060 bayt satır sınırını aşabilir yalnızca bir tablo.

  • Sütunları da dahil olmak üzere, diğer verilerin toplamı yazın char ve nchar gereken verileri, düşen içinde 8,060 bayt satır sınırı.Büyük nesne veri 8,060 bayt satır sınırının dışında tutulup.

  • kümelenmiş dizin dizin anahtar içeremez varchar row_overflow_data içinde varolan verilere sahip sütunlar ayırma birimi.Kümelenmiş dizin üzerinde oluşturduysanız, bir varchar sütun ve mevcut verilere olan IN_ROW_DATA ayırma birimi, ekleme veya istediğiniz sütun güncelleştirme eylemlerini gönderme veri kapalı-satır will fail.Ayırma birimleri hakkında daha fazla bilgi için bkz: Tablo ve dizin organizasyon.

  • Anahtar olarak satır taşması verisi içeren sütunlar veya kümelenmemiş dizin anahtarı olmayan sütunları ekleyebilirsiniz.

  • Seyrek sütunları kullanın tablolar için kayıt boyutu sınırı 8,018 bayttır.Dönüştürülen veri yanı sıra varolan kayıt verilerini 8,018 bayt aşarsa, mssqlserver hata 576 döndürülür.Sütun seyrek ve nonsparse türlerini dönüştürüldüğünde Veritabanı Altyapısı tutan bir kopyasını geçerli kayıt verileri.Bu geçici olarak kayıt için gerekli olan depolama ikiye katlanır..

  • Tabloları veya satır taşması verisi içerebilir dizinler hakkında bilgi edinmek için sys.dm_db_index_physical_stats dinamik yönetim işlev.