Mam tabelę z 2 kolumnami. Typ obu kolumn jest ustawiony navarchar(38) . Jeśli utworzę wiersz z pustą wartością dla jednej z kolumn, czy zajmie to samo miejsce do przechowywania, jakby wartość nie była pusta? Innymi słowy, czy MySQL zarezerwuje przestrzeń dyskową dla kolumny (w zależności od jej typu) podczas tworzenia …
Mam prosty wybór odrębny dla niektórych danych szeregów czasowych: SELECT DISTINCT user_id FROM events WHERE project_id = 6 AND time > '2015-01-11 8:00:00' AND time < '2015-02-10 8:00:00'; I zajmuje to 112 sekund. Oto plan zapytań: http://explain.depesz.com/s/NTyA Moja aplikacja musi wykonać wiele różnych operacji i tak się liczy. Czy istnieje …
Worek z piaskiem Pracując na Top Quality Blog Posts® natknąłem jakiegoś zachowania optymalizatora znalazłem naprawdę irytujące interesujące. Nie mam od razu wyjaśnienia, przynajmniej takiego, z którego jestem zadowolony, więc umieszczam je tutaj na wypadek, gdyby pojawił się ktoś inteligentny. Jeśli chcesz śledzić, możesz pobrać zrzut zrzutu danych przepełnienia stosu z …
Wykonanie poniższego zapytania zajmuje ponad 11 minut. SELECT `c`.*, `e`.`name` AS `employee_name`, `e`.`emp_no`, `d`.`code` AS `department_code`, IF(ew.code IS NOT NULL, ew.code, egw.code) AS shift_code, IF(ew.code IS NOT NULL, ew.time_in_from, egw.time_in_from) AS time_in_from, IF(ew.code IS NOT NULL, ew.time_out_to, egw.time_out_to) AS time_out_to, IF(ew.code IS NOT NULL, ew.next_day, egw.next_day) AS next_day FROM `tms_emp_badge_card` …
Mam zapytanie, które łączy kilka tabel i działa dość źle - oszacowania wierszy są znacznie (1000 razy) wyłączone, a połączenie zagnieżdżonych pętli jest wybrane, co powoduje wielokrotne skanowanie tabeli. Kształt zapytania jest dość prosty, wygląda mniej więcej tak: SELECT t1.id FROM t1 INNER JOIN t2 ON t1.id = t2.t1_id LEFT …
Mam tabelę o nazwie Address, która ma utrwaloną kolumnę obliczeniową o nazwie Hashkey. Kolumna jest deterministyczna, ale nieprecyzyjna. Ma unikalny indeks, którego nie można zobaczyć. Jeśli uruchomię to zapytanie, zwracam klucz podstawowy: SELECT @ADDRESSID= ISNULL(AddressId,0) FROM dbo.[Address] WHERE HashKey = @HashKey Dostaję ten plan: Jeśli wymuszę indeks, otrzymam ten jeszcze …
Mam tabelę z unikalnym indeksem filtrowanym pod kątem wartości, które nie mają wartości zerowej. W planie zapytań jest stosowane odrębne. Czy jest tego powód? USE tempdb CREATE TABLE T1( Id INT NOT NULL IDENTITY PRIMARY KEY ,F1 INT , F2 INT ) go CREATE UNIQUE NONCLUSTERED INDEX UK_T1 ON T1 …
Próbuję ustalić, które indeksy mają być używane w zapytaniu SQL z WHEREwarunkiem, a GROUP BYktóry działa obecnie bardzo wolno. Moje zapytanie: SELECT group_id FROM counter WHERE ts between timestamp '2014-03-02 00:00:00.0' and timestamp '2014-03-05 12:00:00.0' GROUP BY group_id Tabela ma obecnie 32 000 000 wierszy. Czas wykonania zapytania znacznie wzrasta, …
Zaktualizuj poniżej Mam tabelę kont o typowej architekturze kont acct / parent do reprezentowania hierarchii kont (SQL Server 2012). Stworzyłem WIDOK za pomocą CTE, aby wyrównać hierarchię, i ogólnie działa pięknie i zgodnie z przeznaczeniem. Mogę sprawdzać hierarchię na dowolnym poziomie i łatwo przeglądać gałęzie. Istnieje jedno pole logiki biznesowej, …
Mam zapytanie SQL, które spędziłem dwa ostatnie dni, próbując zoptymalizować za pomocą prób i błędów i planu wykonania, ale bezskutecznie. Proszę wybacz mi to, ale opublikuję tutaj cały plan wykonania. Dołożyłem starań, aby nazwy tabel i kolumn w zapytaniu i planie wykonania były ogólne, zarówno dla zwięzłości, jak i dla …
Nowy OFFSET ... FETCHmodel wprowadzony wraz z SQL Server 2012 oferuje proste i szybsze stronicowanie. Dlaczego w ogóle istnieją jakiekolwiek różnice, biorąc pod uwagę, że te dwie formy są semantycznie identyczne i bardzo powszechne? Zakłada się, że optymalizator rozpoznaje oba i optymalizuje je (trywialnie) w pełni. Oto bardzo prosty przypadek, …
Oto mój przykład zapytania: SELECT nickname, CASE class_id WHEN 1 THEN 'Druid' WHEN 2 THEN 'Necromancer' WHEN 3 THEN 'Mage' WHEN 4 THEN 'Priest' WHEN 5 THEN 'Warrior' WHEN 6 THEN 'Stalker' WHEN 7 THEN 'Paladin' WHEN 8 THEN 'Psionic' END class_name, ROUND(AVG(level),2) level, ROUND(AVG(tabard_id),2) tabard, CASE rank_id WHEN 1 …
Mam dwa podobne zapytania, które generują ten sam plan zapytań, z tym wyjątkiem, że jeden plan zapytań wykonuje skanowanie indeksu klastrowanego 1316 razy, podczas gdy drugi wykonuje go 1 raz. Jedyną różnicą między tymi dwoma zapytaniami są różne kryteria daty. Długotrwałe zapytanie faktycznie zawęża kryteria daty i wycofuje mniej danych. …
Pracując nad optymalizacją niektórych procedur przechowywanych, usiadłem z DBA i przeszedłem niektóre procedury przechowywane z wysoką aktywnością blokowania i / lub dużą aktywnością odczytu / zapisu. Jedną rzeczą, o której wspominał DBA było to, że powinienem zadeklarować wszystkie zmienne (zwłaszcza TABLEte) na górze procedury składowanej, aby uniknąć ponownej kompilacji. To …
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.