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 …
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 …
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 …
Czy to robi różnicę, jeśli filtrujesz Widok wewnątrz lub na zewnątrz Widoku? Na przykład, czy jest jakaś różnica między tymi dwoma zapytaniami? SELECT Id FROM MyTable WHERE SomeColumn = 1 Lub SELECT Id FROM MyView WHERE SomeColumn = 1 I MyViewjest zdefiniowany jako SELECT Id, SomeColumn FROM MyTable Czy odpowiedź …
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 …
Mam bazę danych, w której ładuję pliki do tabeli pomostowej. Z tej tabeli pomostowej mam 1-2 sprzężenia, aby rozwiązać niektóre klucze obce, a następnie wstawiam te wiersze do końcowej tabeli (która ma jedną partycję na miesiąc). Mam około 3,4 miliarda wierszy na trzy miesiące danych. Jaki jest najszybszy sposób na …
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ź?
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 …
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 …
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 …
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, …
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 …
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 …
Mam procedurę składowaną, która zwraca wyniki z widoku indeksowanego za pomocą indeksu obejmującego. Zwykle działa szybko (~ 10 ms), czasem może działać nawet do 8 sekund. Oto przykład losowego wykonania (uwaga: to nie jest powolne, ale tekst zapytania jest taki sam, z wyjątkiem przekazywanej wartości): declare @p2 dbo.IdentityType insert into …
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 …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.