Pytania otagowane jako query-performance

W przypadku pytań dotyczących poprawy wydajności i / lub wydajności zapytań do bazy danych.

4
Czy indeks przestrzenny może pomóc w zapytaniu „zakres - sortuj według - limit”
Zadanie tego pytania, szczególnie postgresowi, ponieważ ma dobre wsparcie dla indeksów R / drzewa / przestrzennych. Mamy następującą tabelę ze strukturą drzewa (model zestawu zagnieżdżonego) słów i ich częstotliwości: lexikon ------- _id integer PRIMARY KEY word text frequency integer lset integer UNIQUE KEY rset integer UNIQUE KEY I zapytanie: SELECT …

2
Korzystanie z widoków indeksowanych dla agregatów - zbyt piękne, aby mogło być prawdziwe?
Posiadamy hurtownię danych z dość dużą liczbą rekordów (10-20 milionów wierszy) i często uruchamiamy zapytania, które zliczają rekordy między określonymi datami lub liczą rekordy z określonymi flagami, np. SELECT f.IsFoo, COUNT(*) AS WidgetCount FROM Widgets AS w JOIN Flags AS f ON f.FlagId = w.FlagId WHERE w.Date >= @startDate GROUP …

2
Jak radzić sobie ze złym planem zapytań spowodowanym dokładną równością typu zakresu?
Przeprowadzam aktualizację, w której wymagam dokładnej równości tstzrangezmiennej. ~ 1M wierszy jest modyfikowanych, a zapytanie zajmuje ~ 13 minut. Wynik EXPLAIN ANALYZEmożna zobaczyć tutaj , a rzeczywiste wyniki są bardzo różne od tych oszacowanych przez narzędzie do planowania zapytań. Problem polega na tym, że podczas skanowania indeksu t_rangeoczekuje się zwrócenia …


1
SQL Server 2014: jakieś wyjaśnienie niespójnego oszacowania liczności samodzielnego przyłączenia?
Rozważ następujący plan zapytań w programie SQL Server 2014: W planie zapytań samozłączenie ar.fId = ar.fIddaje szacunkową wartość 1 wiersza. Jest to jednak logicznie niespójne oszacowanie: arma 20,608wiersze i tylko jedną wyraźną wartość fId(dokładnie odzwierciedloną w statystykach). Dlatego to połączenie tworzy pełny iloczyn krzyżowy wierszy ( ~424MMwierszy), co powoduje, że …


3
Procedury składowane a wbudowany SQL
Wiem, że procedury składowane są bardziej wydajne dzięki ścieżce wykonania (niż wbudowany sql w aplikacjach). Jednak po naciśnięciu nie wiem, dlaczego. Chciałbym poznać techniczne uzasadnienie tego (w sposób, który mogę wyjaśnić komuś później). Czy ktoś może mi pomóc sformułować dobrą odpowiedź?

1
Indeksy: liczba całkowita vs wydajność łańcucha, jeśli liczba węzłów jest taka sama
Tworzę aplikację w Ruby on Rails z bazą danych PostgreSQL (9.4). W moim przypadku użycia kolumny w tabelach będą bardzo często wyszukiwane, ponieważ cały punkt aplikacji szuka bardzo specyficznych atrybutów w modelu. Obecnie jestem podejmowaniu decyzji, czy użyć integertypu lub po prostu użyć typowy typu string (np character varying(255), który …

5
Klauzula SARGable WHERE dla dwóch kolumn dat
Mam interesujące pytanie dotyczące SARGability. W tym przypadku chodzi o użycie predykatu na podstawie różnicy między dwiema kolumnami dat. Oto konfiguracja: USE [tempdb] SET NOCOUNT ON IF OBJECT_ID('tempdb..#sargme') IS NOT NULL BEGIN DROP TABLE #sargme END SELECT TOP 1000 IDENTITY (BIGINT, 1,1) AS ID, CAST(DATEADD(DAY, [m].[severity] * -1, GETDATE()) AS …

1
Szukaj, a będziesz skanować… na podzielonych na partycje tabelach
Przeczytałem te artykuły w PCMag autorstwa Itzika Ben-Gana : Szukaj i skanuj część I: gdy optymalizator nie optymalizuje Szukaj i skanuj część II: Rosnące klucze Mam obecnie problem „Zgrupowanego maksimum” ze wszystkimi naszymi partycjonowanymi tabelami. Używamy sztuczki, którą Itzik Ben-Gan zapewnił dla uzyskania maksimum (ID), ale czasami po prostu nie …

2
JAK używa indeksu, CHARINDEX nie?
To pytanie dotyczy mojego starego pytania . Wykonanie poniższego zapytania trwało od 10 do 15 sekund: SELECT [customer].[Customer name],[customer].[Sl_No],[customer].[Id] FROM [company].dbo.[customer] WHERE (Charindex('123456789',CAST([company].dbo.[customer].[Phone no] AS VARCHAR(MAX)))>0) W niektórych artykułach widziałem, że używanie CASTi CHARINDEXnie skorzysta z indeksowania. Istnieje również kilka artykułów, które mówią, że używanie LIKE '%abc%'nie skorzysta z indeksowania, …

1
Zapytanie SQL dla kombinacji bez powtórzeń
Potrzebuję zapytania, które może być użyte w funkcji (lub jako) i pobiera wszystkie kombinacje n wartości. Potrzebuję wszystkich kombinacji długości k, gdzie k = 1..n. Rozszerzona próbka danych wejściowych i wyników, więc dane wejściowe mają 3 wartości zamiast 2 - jednak liczba wartości wejściowych może różnić się od 1 do …

1
Sonda klucze mieszające i pozostałe
Powiedzmy, że mamy takie zapytanie: select a.*,b.* from a join b on a.col1=b.col1 and len(a.col1)=10 Zakładając, że powyższe zapytanie używa łączenia mieszającego i ma wartość resztkową, kluczem sondy będzie, col1a resztą będzie len(a.col1)=10. Ale przechodząc przez inny przykład, widziałem zarówno sondę, jak i pozostałość, które są tą samą kolumną. Poniżej …


2
Dlaczego operator konkatenacji szacuje mniej wierszy niż dane wejściowe?
W poniższym fragmencie planu zapytania wydaje się oczywiste, że oszacowanie wiersza dla Concatenationoperatora powinno być ~4.3 billion rowslub suma oszacowań wiersza dla jego dwóch danych wejściowych. Jednak szacunek ~238 million rowsjest generowany, co prowadzi do nieoptymalnej Sort/ Stream Aggregatestrategii, która przelewa setki GB danych do tempdb. Logicznie spójna ocena w …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.