Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

David Gešvindr MCT | MSP | MCITP | MCPD. Jak se zpracovává dotaz? Když norma nestačila Práce s XML Geografická data CTE Zpracování hierarchií a grafů.

Podobné prezentace


Prezentace na téma: "David Gešvindr MCT | MSP | MCITP | MCPD. Jak se zpracovává dotaz? Když norma nestačila Práce s XML Geografická data CTE Zpracování hierarchií a grafů."— Transkript prezentace:

1 David Gešvindr MCT | MSP | MCITP | MCPD

2 Jak se zpracovává dotaz? Když norma nestačila Práce s XML Geografická data CTE Zpracování hierarchií a grafů Píšeme uložené procedury v C#

3

4 Popisuje chování dotazu Jeho fáze, jejich vstupy a výstupy nutně nesouvisí s vlastním fyzickým zpracováním dotazu

5 SELECT DISTINCT TOP FROM JOIN ON WHERE GROUP BY HAVING ORDER BY 1 2 3 4 5 6 7 8 9 10

6 Customers CustomerIDName 1David 2Jirka 3Martin Orders OrderIDCustomerID 11 22 31 44 X CROSS JOIN Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 1 22 1 31 3Martin44... VT1

7 Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 1 22 3Martin44... ON CONDITION Customers.CustomerID = Orders.CustomerID Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 1 31 2Jirka22 = INNER JOIN VT1 VT2

8 Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 1 31 2Jirka22 VT2 Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 1 31 2Jirka22 3MartinNULL VT3

9 Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 1 31 2Jirka22 VT2 Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 1 31 2Jirka22 NULL 44 VT3

10 Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 1 31 2Jirka22 VT2 Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 1 31 2Jirka22 3MartinNULL 44 VT3

11 SELECT DISTINCT TOP FROM JOIN ON WHERE GROUP BY HAVING ORDER BY 1 2 3 4 5 6 7 8 9 10

12 V podmínce ON, WHERE a HAVING: NULL chápáno jako FALSE V check-constraint: NULL chápáno jako TRUE V GROUP BY, ORDER BY a UNIQUE omezeních jsou si NULL rovny Three-valued Logic True False Unknown VT3 VT4

13 Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 1 31 2Jirka22 3MartinNULL VT4 GROUP BY Customers.CustomerID GROUPSRAW Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 31 2Jirka22 3MartinNULL VT5

14 HAVING COUNT(Orders.OrderID) > 0 VT5 GROUPSRAW Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 31 2Jirka22 3MartinNULL GROUPSRAW Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David11 31 2Jirka22 VT6

15 Vyhodnocení výrazů v části SELECT Vytvořené aliasy sloupců použitelné až v dalších krocích „All-at-once“ SELECT c1 + 1 AS e1, e1 + 1 AS e2 UPDATE Customers SET FirstName = LastName, LastName = FirstName UPDATE dbo.T1 SET c1 = c1 + (SELECT MAX(c1) FROM dbo.T1) VT6 VT7

16 Odstranění duplicitních řádků Redundantní s GROUP BY VT7 VT8

17 Vrání n prvních výsledků z dodaného tabulky Pokud je definováno ORDER BY, ovlivní pořadí řádků WITH TIES Deterministický x nedeterministický VT8 VT9

18 Seřazení množiny výsledků Dle ANSI SQL:1999 při použití DISTINCT jsme omezeni na sloupce vracené příkazem SELECT (VT7), jinak použitelná i VT6 Vrací kurzor Nelze použít jako table-expression View, Inline table-valued function, subquery, derived table nebo common table expression VT9 VC10

19 SELECT DISTINCT TOP FROM JOIN ON WHERE GROUP BY HAVING ORDER BY 1 2 3 4 5 6 7 8 9 10

20

21 Customers CustomerIDName 1David 2Jirka 3Martin Orders OrderIDCustomerID 31 Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David31 2Jirka22 SELECT TOP 1 * WHERE Orders.CustomerID = Customers.CustomerID ORDER BY Orders.OrderID DESC

22 Customers CustomerIDName 1David 2Jirka 3Martin Orders OrderIDCustomerID 31 Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1David31 2Jirka22 3MartinNULL SELECT TOP 1 * WHERE Orders.CustomerID = Customers.CustomerID ORDER BY Orders.OrderID DESC

23 CustomerIDCityCategory 1BrnoSmall 2BrnoMedium 3PrahaLarge 4PrahaLarge 5OstravaMedium CitySmallMediumLarge Brno110 Praha002 Ostrava010

24 CitySmallMediumLarge Brno110 Praha002 Ostrava010 CityCategoryCustomersCount BrnoSmall1 BrnoMedium1 PrahaLarge2 OstravaMedium1

25

26 Ne na vše je relační podoba dat vhodná Převod dat z XML do relační podoby jen kvůli uložení nemusí být výhodný XML je univerzální formát pro výměnu dat Zjednodušení importu a exportu dat

27 Od verze 2005 Uložení XML do tabulky Datový typ XML (XML index) Podpora XML schémat XML document / XML fragment Generování XML z relačních dat Konverze XML na relační data Použití xquery v dotazech

28 FOR XML Rozšiřuje příkaz SELECT Nastavitelný formát výstupu Několik režimů AUTO, EXPLICIT, RAW, PATH Výhody Klient obdrží přímo XML Velmi rychlý export do XML

29

30 Výhodné pro import XML XML je převedeno na tabulku se kterou je možné pracovat Postup: 1.sp_XML_preparedocument 2.OPENXML 3.sp_xml_removedocument

31

32 Xquery Dostupné metody: Value Exists Query Nodes Výhody: Omezení síťového provozu Vyšší bezpečnost Lepší výkon

33

34

35 Microsoft SQL Server 2008 Možnost uložení geografických a geometrických dat Data jsou ukládána jako serializované instance geografických objektů Pokročilé možnosti dotazování Dobrý výkon – spatial indexy

36 Dostupné statické metody STPointFromText / STPointFromWKB STLineFromText / STLineFromWKB STPolyFromText / STPolyFromWKB Dostupné metody STArea, STAsText, STDistance, STIntersects, STLength, STUnion, STEquals

37

38 Table Valued Expression Obdoba derived table Výhody: Zpřehlednění kódu Tvorba rekurzivních dotazů

39

40

41 Využití Uložení organizační struktury Souborový systém Úkoly v projektech Možnosti uložení Tabulka s cizími klíči XML Hierarchyid

42 Nativní způsob pro uložení hierarchických dat Výhody Malá velikost Indexované Depth-firstBreadth-first

43

44

45 BEN-GAN, Itzik, et al. Inside Microsoft SQL Server 2008: T-SQL Querying. Redmond, Washington : Microsoft Press, 2009. 798 s.

46 David Gešvindr david@wug.cz


Stáhnout ppt "David Gešvindr MCT | MSP | MCITP | MCPD. Jak se zpracovává dotaz? Když norma nestačila Práce s XML Geografická data CTE Zpracování hierarchií a grafů."

Podobné prezentace


Reklamy Google