Bir var mekansal indeksi olan DBCC CHECKDB
yolsuzlukların raporlar:
DBCC CHECKDB(MyDB)
WITH EXTENDED_LOGICAL_CHECKS, DATA_PURITY, NO_INFOMSGS, ALL_ERRORMSGS, TABLERESULTS
Uzamsal dizin, XML dizini veya dizine alınmış görünüm 'sys.extended_index_xxx_384000' (nesne kimliği xxx), görünüm tanımının ürettiği tüm satırları içermiyor. Bu mutlaka bu veritabanındaki verilerle bir bütünlük sorunu teşkil etmez.
Uzamsal dizin, XML dizini veya dizine alınmış görünüm 'sys.extended_index_xxx_384000' (nesne kimliği xxx), görünüm tanımı tarafından üretilmeyen satırlar içerir. Bu mutlaka bu veritabanındaki verilerle bir bütünlük sorunu teşkil etmez.
CHECKDB 'sys.extended_index_xxx_384000' tablosunda 0 ayırma hatası ve 2 tutarlılık hatası buldu (nesne kimliği xxx).
Tamir seviyesi repair_rebuild
.
Dizini bırakmak ve yeniden oluşturmak, bu bozulma raporlarını kaldırmaz. Olmadan EXTENDED_LOGICAL_CHECKS
ancak DATA_PURITY
hata bildirilmez.
Ayrıca, CHECKTABLE
CI'si 30 MB boyutunda ve yaklaşık 30k satır olmasına rağmen, bu tablo için 45 dakika sürer. Bu tablodaki tüm veriler nokta geography
verileridir.
Bu davranış hiçbir koşulda bekleniyor mu? "Bu mutlaka bir bütünlük sorununu temsil etmez" diyor. Ne yapmam gerekiyor? CHECKDB
bir sorun olan başarısız.
Bu komut dosyası sorunu yeniden üretir:
CREATE TABLE dbo.Cities(
ID int NOT NULL,
Position geography NULL,
CONSTRAINT PK_Cities PRIMARY KEY CLUSTERED
(
ID ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
GO
INSERT dbo.Cities (ID, Position) VALUES (20171, 0xE6100000010C4E2B85402E424A40A07312A518C72A40)
GO
CREATE SPATIAL INDEX IX_Cities_Position ON dbo.Cities
(
Position
)USING GEOGRAPHY_AUTO_GRID
WITH (
CELLS_PER_OBJECT = 16, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
Bu sürüm 12.0.4427.24'tür (SQL Server 2014 SP1 CU3).
Tabloyu şema ve verilerle yazdım, taze DB, çalıştır. Aynı hatayı. CHECKDB ayrıca bu inanılmaz 45 dakikalık çalışma süresine sahiptir. SQL Profiler kullanarak CHECKDB sorgu planı ele geçirdi. Görünüşe göre aşırı çalışma süresine neden olan yanlış yönlendirilmiş bir halka birleşimi vardır. Plan, tablonun satır sayısında ikinci dereceden çalışma zamanına sahip! İki kat yuvalanmış tarama döngüsü birleşiyor.
Mekansal olmayan tüm dizinleri temizlemek hiçbir şeyi değiştirmez.