Aracılığıyla paylaş


Satır-8 KB Exceeding veri taşması

Bir tabloda en çok 8,060 bayt başına bir satır içerebilir.Içinde SQL Server 2008, bu sınırlama 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 biri uzunluğunu hala çok 8.000 bayt sınırı içinde kalan gerekir; ancak, birleştirilmiş genişlikleri, 8,060 baytlık sınırı aşabilir.Bu geçerli varchar, nvarchar, varbinary, sql_variant, veya CLR kullanıcı tanımlı türü oluşturulmuş, değiştirilmiş ve ayrıca ne zaman veri eklendiğinde veya güncelleştirildiğinde için olduğunda sütun.

Not

Bu kısıtlama uygulanmaz varchar(max), nvarchar(max), varbinary(max), ntext, text, image, veya xml sütunlar. Bu sütun, 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 verilerinin kullanma.

Satır taşması konuları

Ne zaman, birleştirme varchar, nvarchar, varbinary, sql_variant, veya CLR kullanıcı tanımlı türü sütunları, satır başına 8,060 baytı aşan aşağıdakileri dikkate alın:

  • Bayt 8,060 satır-boyut sınırını açısından performans nedeniyle etkileyebilir SQL Server hala bir sayfa başına 8 KB sınırını korur. Bir birleşimi olduğunda varchar, nvarchar, varbinary, sql_variant, veya CLR kullanıcı tanımlı tür sütunlar bu sınırı aşıyor SQL Server Database Engine özgün sayfadaki 24 bayt işaretçi koruyarak ROW_OVERFLOW_DATA ayırma birimi başka bir sayfa kaydının sütun en büyük genişliğe sahip taşınır. Kayıtları güncelleştirme işlemlerini göre uzatılmış büyük kayıtları başka bir sayfa taşıma dinamik olarak oluşur.Kayıtları kısaltın güncelleştirme işlemlerini yeniden özgün sayfa IN_ROW_DATA ayırma birimi taşınacak kayıt neden olabilir.Ayrıca, sorgulama ve diğer gerçekleştirme işlemleri'ni seçin, çünkü, bu kayıtların yerine saat uyumsuz olarak eşzamanlı olarak işlenen sıralar veya birleştirme içeren büyük kayıtlarına satır taşması verisi işlem saat, yavaşlatır.

    Bu nedenle, birden çok tablo tasarladığınızda varchar, nvarchar, varbinary, sql_variant, veya CLR kullanıcı tanımlı türü sütunlar, büyük olasılıkla olan satırları yüzdesi düşünün. üzerinden akışı ve sıklığı ile bu taşma veri Sorgulanacak olasıdır.Normalleştirme varsa sık birçok satır satır taşması verisi sorgularını büyük olasılıkla, dikkate tablo bazı sütunlar diğerine taşınır, tablo.Bu, daha sonra zaman uyumsuz bir birleştirmek işleminde sorgulanabilir.

  • Tek bir sütun uzunluğunu hala çok 8.000 bayt için sınırı içinde kalan gerekir varchar, nvarchar, varbinary, sql_variant, CLR kullanıcı tanımlı türü sütun. Kendi birleşik uzunluğu 8,060 baytlık satır sınırını aşabilir yalnızca bir tablo.

  • Toplam diğer veri sütunları da dahil olmak üzere, yazın char ve nchar Veri, 8,060 baytlık satır sınırı içinde kalan gerekir. Büyük nesne de 8,060 baytlık satır sınırının dışında tutulup veridir.

  • kümelenmiş dizin, dizin anahtarının içeremez varchar Varolan verileri ROW_OVERFLOW_DATA ayırma birimi olan sütun. kümelenmiş dizin oluşturulursa, bir varchar sütun ve varolan verileri IN_ROW_DATA ayırma birimi, sonraki ekleme ya da devre dışı-satır veri gönderme sütun eylemleri güncelleştirmenin başarısız olur. Ayırma birimleri hakkında daha fazla bilgi için bkz: Tablo ve dizin kuruluşu.

  • satır taşması verisi anahtarı içeren bir sütun ya da bir kümelenmemiş dizin anahtar olmayan sütunları ekleyebilirsiniz.

  • 8,018 Bayt sparse sütunları kullanan bir tablo için kayıt boyutu sınırıdır.MSSQLSERVER HATA 576, dönüştürülen verilerin yanı sıra varolan kayıt verilerini 8,018 baytı aştığında döndürülür.Sütunları sparse ve nonsparse türleri arasında zaman dönüştürülür.. Database Engine Geçerli kayıt verilerinin bir kopyasını tutar. Bu geçici olarak kayıt için gerekli olan depolama ikiye katlanır.

  • Tablo veya satır taşma veriler içerebilecek dizinler hakkında bilgi edinmek için , kullanan sys.dm_db_index_physical_stats Dinamik yönetim işlev.