Session will begin very soon :)

Slides:



Advertisements
Podobne prezentacje
Jak utkać swoją własną sieć? Dominika Miernik i Dorota Szczerbak
Advertisements

Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Strojenie SQL w bazie Oracle
Indeksy w bazie danych Oracle
Optymalizacja zapytań
INDEKSY I SORTOWANIE ZEWNĘTRZNE
SYSTEM INTERNETOWY OLIMPIADY & UNIVERSAL PYTHON FRAMEWORK & UNIVERSAL PYTHON FRAMEWORK Szymon Acedański, Piotr Findeisen, Filip Grządkowski, Michał Jaszczyk,
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
PHP + MySQL część II.
OLAP budowa aplikacji analitycznych w MS SQL 2000 i Yukon
Bazy danych II Instrukcja INSERT Piotr Górczyński 25/08/2001.
25/08/ Bazy danych II Piotr Górczyński Instrukcja UPDATE.
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
Język SQL – zapytania zagnieżdżone (podzapytania)
Obsługa bazy danych z poziomu phpMyAdmin
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
SQL-owskie szlaki górskie
SQLDziałanie select * from tab_kredyt wyświetla wszystko z tab_kredyt select Kredytobiorca, Bank, rodzaj, data_zawarcia, klasyfikacja from tab_kredyt.
Zapytania SQL: wydajność i optymalizacja
BD-LAB6 Wojciech Pieprzyca
Projektowanie fizycznej bazy danych
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Język SQL – ciąg dalszy DML (Data Manipulation Language)
Przykład włamania do aplikacji internetowej poprzez modyfikację zapytań SQL Skrypty ASP Serwer bazy danych MS SQL Server Piotr Kuźniacki BDi.
Akcja eTwinning w Szkole Podstawowej nr 5 w Rybniku jako przykład wykorzystania Multimedialnego Centrum Informacji mgr Ewa Łopatka.
Grzegorz Bartosik Świadome i pełne wykorzystanie narzędzi klienckich w SQL Server 2005.
Strategia skutecznego szukania informacji w Internecie
Licencjonowanie Lync 2013 Poziom 200.
SQL – zapytania posumowanie
SQL – Structured Query Language (3)
Tablice, listy, obiekty w C# i nie tylko!
O Rubym słów kilka… Simple Pinger O mnie: Maciej Mensfeld ruby
Egzamin maturalny ustny z języka obcego obowiązujący od roku szkolnego 2011/2012 Prezentacja przygotowana na podstawie informacji zawartych w informatorze.
John LENNON IMAGINE (Jeśli chcesz, by tekst odpowiadał piosence pozwól, aby prezentacja przebiegała automatycznie)
Delphi i Acad cd.. l_poz := MSpace.Count; Label3.Caption:=IntToStr(l_poz); ent:=Mspace.Item(0); for l_poz := 0 to MSpace.Count-1 do begin; ent:=Mspace.Item(l_poz);
Użytkownicy i przywileje Sesja - przykład Błędy Komunikacja międzyskryptowa Wykład 83PD Technologie internetowe.
Bazy danych podstawowe pojęcia
Licencjonowanie narzędzi dla programistów
Bazy danych.
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Bazy danych Microsoft access 2007.
PL/SQL – dalsza wędrówka
How to make an application on Step by Step Instructions
 Primary School no 17  John Paul II, Chorzow, Poland  Made by Monika Winkler`s Project Group.
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
POLISH LANGUAGE COURSE Lesson 1 Greetings and introducing yourself.
Komendy SQL do pracy z danymi
Les meilleures photos de L'année 2005 D'après NBC A life for two, full of tenderness, obtains happiness as they get closer to heaven. Życie we dwoje,
Relacja (ang.relation) Po podzieleniu danych na tabele i zdefiniowaniu pól kluczy podstawowych trzeba wprowadzić do systemu bazy danych informacje na temat.
„Duck – freak” „ Kaczka Dziwaczka”.
Optymalna konfiguracja Microsoft SQL Server 2014
Projektowanie postaci formularza:
Wdrożenie Foglight w Urzędzie Dozoru Technicznego
You are about to see a few sentences in Polish. Try to translate them into English, but keep in mind they are: The First Conditonal The Second Conditional.
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
Karol Więsek PwC Abusing APNs for profit. Historia: audyt sieci jednego z operatorów Po powrocie: „czyste” karty SIM.
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
POLAND.
Polish is a Slavic language spoken primarily in Poland, being the mother tongue of Poles. It belongs to the West Slavic languages. Polish is the official.
Warszawska Wyższa Szkoła Informatyki Andrzej Kuska Promotor : dr inż. Paweł Figat Konsultant : mgr inż. Andrzej Ptasznik.
Testowanie wydajnościowe Metody testowania Apache Jmeter Serwer Jboss Baza danych PostgreSQL Testowanie wydajności odczytu z bazy danych Testowanie wydajności.
Optymalizacja zapytań w SQL Server
Wprowadzenie do OpenSolaris
A prototype of distributed modelling environment
Testowanie baz danych - fakty i mity
Technologie Informacyjne Bazy danych
J2EE: Bazy danych c.d. Język zapytań EJB QL.
Cover page Change background image by right-clicking → Edit background Picture fill → From file First move the gradient mask by activating it (clicking.
Czym są i jak służą społeczeństwu?
Zapis prezentacji:

Session will begin very soon :) Please complete the evaluation form from your pocket after the session. Your feedback will help us to improve future conferences and speakers will appreciate your feedback! Enjoy the conference!

Tuning Large Queries Grzegorz Łyp Tuning Large Queries Witam wszystkich na sesji poświęconej analizie dużych zapytań pod kątem poprawy ich wydajności. Jeżeli spodziewaliście się innego tematu lub innej osoby, to znaczy że pomyliście sale. 

Grzegorz Łyp MS SQL Architect & Optimizer MS SQL, .NET & Java Developer Product and Project Manager 15 years in professional IT 10 years in MS SQL Member of Data Community Poland Blog: www.lyp.pl/blog Mail: glyp@tlen.pl Twitter: @GrzegorzLyp LinkedIn: https://www.linkedin.com/in/grzegorzlyp/ Facebook: https://www.facebook.com/profile.php?id=100001054878385 Currently at Asseco Business Solutions ( www.assecobs.pl ) Grzegorz Łyp Krótko o sobie. Mam 35 lat i od 15 lat istnieję w świecie profesjonalnego IT. Osobiście ojciec dwóch córek i mąż jednej żony. Startowałem od C i C++. Potem Delphi, MS Access i tak trafiłem do świata SQL. Potem po wprowadzeniu CLR pojawił się .NET. Okazjonalnie biorę się za projekty w Javie. Obecnie dodatkowo jestem menedżerem projektu oraz produktu w Asseco Business Solutions. Znajdziecie mnie pod tymi adresami w sieci. Obecnie pracuję w Asseco Business Solutions, gdzie staram się studzić dzikie zapędy programistów SQL i .NET do spowolnienia kodu, który produkują.

Sponsors Sponsors Wielkie brawa dla naszych sponsorów. Bez nich organizacja takich spotkań nie byłaby możliwa.

Agenda What is large query ? Why tuning large queries is hard ? Some techniques to tune large queries or find what should be tuned Agenda Będziemy mówić o dużych zapytaniach, ale co to są duże zapytania. Naszym kryterium trudności jest odnalezienie się w sytuacji, gdy dostajemy zapytanie i według typowych reguł nie wiemy jak sobie z tym zapytaniem poradzić. Typowe reguły można znaleźć w opisach analizy planów wykonania oraz wskazówek dotyczących poprawiania wydajności zapytań. W dalszej części spróbuję pokazać wam dlaczego optymalizacja takich zapytań jest trudna. Przykłady. Na koniec i to będzie większość tej prezentacji pokaże wam kilka technik radzenia są w trudnych sytuacjach i spróbujemy znaleźć trudne miejsca zapytania.

What is large query ? Is it large ? select p.* from dbo.Posts p left join dbo.Users u1 on p.OwnerUserId = u1.Id and u1.CreationDate<GETDATE() left join dbo.Users u2 on p.OwnerUserId = u2.Id and u2.Age<35 left join dbo.Users u3 on p.OwnerUserId = u3.Id and u3.DisplayName like '%Mickey%' left join dbo.Users u4 on p.OwnerUserId = u4.Id and u4.LastAccessDate <GETDATE() left join dbo.Users u5 on p.OwnerUserId = u5.Id and u5.Location like '%PL%' left join dbo.Users u6 on p.OwnerUserId = u6.Id and u6.Reputation >10 left join dbo.Users u7 on p.OwnerUserId = u7.Id and u7.UpVotes >10 left join dbo.Users u8 on p.OwnerUserId = u8.Id and u8.Views >10 where p.OwnerUserId = 7210631 -- Grzegorz Łyp Is it large ? Będziemy posługiwać się bazą StackOverflow. Jest prosta i dostatecznie duża. OwnerUserId = 7210631 -> Id Grzegorz Łyp Czy to zapytanie jest „duże” ? Zagłosujmy. Kto jest na tak ? Kto jest na nie ? Sprawdźmy w SSMS.

What is large query ? Simple execution plan Jak się okazuje plan wykonania jest bardzo prosty. Serwer SQL zauważył, że mamy join po kolumnie w indeksie unikalnym, co oznacza brak rozmnażania rekordów. Jednocześnie nie bierzemy żadnych pól w tabel po LEFT JOIN. W takiej sytuacji SQL Server potrafi zredukować zapytanie do prostszej postaci. Serwer zastosował jedną z reguł transformacji. Reguł jest całkiem sporo i nowsze wersje SQL mają ich coraz więcej. Lista transformacji dostępna jest w zapytaniu: select * from sys.dm_exec_query_transformation_stats

What is large query ? Is it large ? Let’s see how it works. select p.LastActivityDate from dbo.Posts p inner join dbo.Users s on s.Id = p.OwnerUserId Is it large ? Let’s see how it works. Teraz mamy zapytanie pobierające dane z Postów z joinem do Userów. Sprawdźmy w SSMS czy jest szybkie.

What is large query ? Simple execution plan To jest na pewno dużo danych, ale czy jest to trudno analizować wydajnościowo ? Nie. Sprawa jest jasna, choć wiedza o regułach transformacji wciąż jest istotna.

Long Live Demo Long Live Demo Demo bazuje na bazie StackOverFlow. Ponad 100GB danych. Serwer jest całkiem szybki. DEMO

„Object-replacer” variants „Null-Object” approach „Top 1” approach …. „Null-Object” Bieżemy każdy obiekt z zależności. Budujemy z niego „nullowy” i sprawdzamy plan. „TOP 1” Bieżemy każdy obiekt z zależności pytamy go o jeden rekord „TOP 1” i sprawdzamy plan. Możemy stworzyć więcej wariantów lub stworzyć hybrydy dające odpowiedni efekt w wielu sytuacjach.

Long Live Demo Long Live Demo Demo bazuje na bazie StackOverFlow. Ponad 100GB danych. Serwer jest całkiem szybki. DEMO

Conclusions „No more guessing” Adam Machanic „Deep dive, repeat” Me

Q&A