Mam kwerendę w następujący sposób;Powolne działanie SQL
SELECT COUNT(Id) FROM Table
Tabela zawiera 33 miliony rekordów - zawiera klucz podstawowy na Id i brak innych indeksów.
Zapytanie trwa 30 sekund.
Rzeczywisty plan wykonania pokazuje, że używa on sklasyfikowanego indeksu.
Przeanalizowaliśmy tabelę i stwierdziliśmy, że nie jest ona pofragmentowana przy użyciu pierwszego zapytania wyświetlanego w tym łączu: http://sqlserverpedia.com/wiki/Index_Maintenance.
Wszelkie sugestie, dlaczego to zapytanie jest takie powolne i jak to naprawić.
definicji tabeli:
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
Jedno zauważyłem jest baza danych jest ustawiona rosnąć w kawałki 1 MB.
Jest to system na żywo, więc ograniczyliśmy to, w co możemy się bawić - jakieś pomysły?
UPDATE:
OK - mamy lepszą wydajność w rzeczywistym zapytania zainteresowania poprzez dodanie nowych wskaźników non-skupione na odpowiednich kolumnach tak, że nie jest to już poważny problem.
SELECT COUNT
jest wciąż powolny - wypróbowany z podpowiedziami NOLOCK - bez różnicy.
Wszyscy myślimy, że ma to coś wspólnego z ustawieniem Autogrowth na 1Mb zamiast większej liczby, ale zaskoczyło nas, że ma taki efekt. Czy możliwa jest fragmentacja MDF na dysku?
Pytanie 1: czy naprawdę potrzebujesz dokładnej liczby? A może tylko szacunek? –
Ani - jest to tylko zapytanie, które uruchomiliśmy po zaobserwowaniu powolnego działania na czymś innym. Zaskoczyło nas to, że było tak wolno. Spróbuję zaktualizować statystyki, ale zostaną ustawione na automatyczne odliczanie. – BonyT
Nie możesz po prostu użyć stałej? Chodzi mi o to, jak wpływa na ciebie różnica między tym, że ma 33 miliony "lub faktycznie mająca 33.212.293 zapisy? – bevacqua