Aşağıdaki gibi bir sorgum var;Yavaş SQL performansı
SELECT COUNT(Id) FROM Table
Tablo 33 milyon kayıt içeren - bu Id ve başka bir endekse birincil anahtar içerir.
Sorgu 30 saniye sürüyor.
fiili yürütme planı bir kümelenmiş dizin tarama kullanır gösterir.
Biz tablo incelendiğinde ve bu linkte gösterilen ilk sorgusunu kullanarak parçalanmış değil bulduk: http://sqlserverpedia.com/wiki/Index_Maintenance.
bu sorgu çok yavaş neden ve nasıl düzeltebilirim olarak herhangi bir fikir.
Tablo Tanımı: Ben fark etmiş
CREATE TABLE [dbo].[DbConversation](
[ConversationID] [int] IDENTITY(1,1) NOT NULL,
[ConversationGroupID] [int] NOT NULL,
[InsideIP] [uniqueidentifier] NOT NULL,
[OutsideIP] [uniqueidentifier] NOT NULL,
[ServerPort] [int] NOT NULL,
[BytesOutbound] [bigint] NOT NULL,
[BytesInbound] [bigint] NOT NULL,
[ServerOutside] [bit] NOT NULL,
[LastFlowTime] [datetime] NOT NULL,
[LastClientPort] [int] NOT NULL,
[Protocol] [tinyint] NOT NULL,
[TypeOfService] [tinyint] NOT NULL,
CONSTRAINT [PK_Conversation_1] PRIMARY KEY CLUSTERED
(
[ConversationID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
bir şey veritabanı 1Mb parçalar büyümeye ayarlanmış olmasıdır.
O canlı bir sistem bu yüzden biz oynayabilir ne kısıtlanmış - herhangi fikirler?
GÜNCELLEME:
Tamam - biz artık kritik bir sorun değil çok uygun sütunlarda yeni kümelenmemiş indeksleri ekleyerek gerçek faiz sorguda performansı geliştirdik.
SELECT COUNT
olsa yine de yavaş - nolock ipuçları ile çalıştı - hiçbir fark.
Hepimiz AutoGrowth'un daha büyük bir sayı yerine 1Mb'ye ayarlanmış bir şey olduğunu düşünüyoruz, ancak bunun bu etkiyi şaşırttığını düşünüyoruz. Diskteki MDF fragmantasyonu olası bir neden olabilir mi?
Soru 1: Gerçekten tam sayıya ihtiyacın var mı? Ya da sadece bir tahmin? –
Ne de - bu sadece başka bir şey üzerinde yavaş performans gözlemledikten sonra koştuğumuz bir sorudur. Çok yavaş olduğunu bulmak için oldukça şaşırdık. İstatistikleri güncellemeyi deneyeceğim, ancak otomatik güncellemeye ayarlanmışlar. – BonyT
Sadece sabit kullanamaz mısın? Yani, 33 milyona sahip olan ya da aslında 33.212.293 kayıtlarının arasındaki fark sizi nasıl etkiliyor? – bevacqua