Gutscheinbedingungen

**Gültig bis 14.09.2026 auf Spielzeug, Schreibwaren, Filme, Geschenke & Trends, Musik, tolino eReader & Zubehör, Hörbücher, nicht preisgebundene Bücher und Kalender in der Thalia App. Einzelne Artikel können ausgeschlossen sein. Aufgrund der Buchpreisbindung sind deutschsprachige Bücher und eBooks ausgenommen. Zusätzlich ausgenommen sind Abos & Flatrates, Games, Geschenkkarten/-boxen, Shelfies, Software, Zeitschriften sowie einzelne Artikel von tonies®. Pro Einkauf einmal einlösbar. Nur gültig mit im Onlineshop hinterlegter Bonuscard. Click & Collect nur bei Onlinevorabzahlung möglich. Keine Barauszahlung. Nicht kombinierbar mit anderen Aktionen und Gutscheinen. Gutschein wird auf max. 500€ Bestellwert angerechnet. Nicht gültig für Versandkosten und Services.

Produktbild: T-SQL Querying

T-SQL Querying

51,99 €

inkl. gesetzl. MwSt., Versandkostenfrei


Beschreibung

Produktdetails

Einband

Taschenbuch

Erscheinungsdatum

06.03.2015

Verlag

Pearson Education Limited

Seitenzahl

864

Maße (L/B/H)

4,8/18,5/22,9 cm

Gewicht

1383 g

Auflage

1

Sprache

Englisch

ISBN

978-0-7356-8504-8

Beschreibung

Produktdetails

Einband

Taschenbuch

Erscheinungsdatum

06.03.2015

Verlag

Pearson Education Limited

Seitenzahl

864

Maße (L/B/H)

4,8/18,5/22,9 cm

Gewicht

1383 g

Auflage

1

Sprache

Englisch

ISBN

978-0-7356-8504-8

Herstelleradresse

Pearson Education Limited
The Strand 80
WC2R 0RL London
GB
Email: buchhandel@pearson.de
Url: www.stark-verlag.de
Telephone: +49 811 600040
Fax: +49 811 60004601

Noch keine Bewertungen vorhanden

Verfassen Sie die erste Bewertung zu diesem Artikel

Helfen Sie anderen Kundinnen und Kunden durch Ihre Meinung.

Kundinnen und Kunden meinen

Bewertungen (0)

Die Leseprobe wird geladen.
  • Produktbild: T-SQL Querying


  • Foreword     xv



    Introduction     xvii



    Chapter 1: Logical query processing     1




    Logical query-processing phases     3



    Logical query-processing phases in brief     4



    Sample query based on customers/orders scenario     6



    Logical query-processing phase details     8



    Step 1: The FROM phase     8



    Step 2: The WHERE phase     14



    Step 3: The GROUP BY phase     15



    Step 4: The HAVING phase     16



    Step 5: The SELECT phase     17



    Step 6: The ORDER BY phase     20



    Step 7: Apply the TOP or OFFSET-FETCH filter     22



    Further aspects of logical query processing     26



    Table operators     26



    Window functions     35



    The UNION, EXCEPT, and INTERSECT operators     38



    Conclusion     39



    Chapter 2: Query tuning     41



    Internals     41



    Pages and extents     42



    Table organization     43



    Tools to measure query performance     53



    Access methods     57



    Table scan/unordered clustered index scan     57



    Unordered covering nonclustered index scan     60



    Ordered clustered index scan     62



    Ordered covering nonclustered index scan     63



    The storage engine’s treatment of scans     65



    Nonclustered index seek + range scan + lookups     81



    Unordered nonclustered index scan + lookups     91



    Clustered index seek + range scan     93



    Covering nonclustered index seek + range scan     94



    Cardinality estimates     97



    Legacy estimator vs. 2014 cardinality estimator     98



    Implications of underestimations and overestimations     99



    Statistics     101



    Estimates for multiple predicates     104



    Ascending key problem     107



    Unknowns     110



    Indexing features     115



    Descending indexes     115



    Included non-key columns     119



    Filtered indexes and statistics     120



    Columnstore indexes     123



    Inline index definition     130



    Prioritizing queries for tuning with extended events     131



    Index and query information and statistics     134



    Temporary objects     139



    Set-based vs. iterative solutions     149



    Query tuning with query revisions     153



    Parallel query execution     158



    How intraquery parallelism works     158



    Parallelism and query optimization     175



    The parallel APPLY query pattern     181



    Conclusion     186



    Chapter 3: Multi-table queries     187



    Subqueries     187



    Self-contained subqueries     187



    Correlated subqueries     189



    The EXISTS predicate     194



    Misbehaving subqueries     201



    Table expressions     204



    Derived tables     205



    CTEs     207



    Views     211



    Inline table-valued functions     215



    Generating numbers     215



    The APPLY operator     218



    The CROSS APPLY operator     219



    The OUTER APPLY operator     221



    Implicit APPLY     221



    Reuse of column aliases     222



    Joins          224



    Cross join     224



    Inner join     228



    Outer join     229



    Self join     230



    Equi and non-equi joins     230



    Multi-join queries     231



    Semi and anti semi joins     237



    Join algorithms     239



    Separating elements     245



    The UNION, EXCEPT, and INTERSECT operators     249



    The UNION ALL and UNION operators     250



    The INTERSECT operator     253



    The EXCEPT operator     255



    Conclusion     257



    Chapter 4: Grouping, pivoting, and windowing     259



    Window functions     259



    Aggregate window functions     260



    Ranking window functions     281



    Offset window functions     285



    Statistical window functions     288



    Gaps and islands     291



    Pivoting     299



    One-to-one pivot     300



    Many-to-one pivot     304



    Unpivoting     307



    Unpivoting with CROSS JOIN and VALUES     308



    Unpivoting with CROSS APPLY and VALUES     310



    Using the UNPIVOT operator     312



    Custom aggregations     313



    Using a cursor     314



    Using pivoting     315



    Specialized solutions     316



    Grouping sets     327



    GROUPING SETS subclause     328



    CUBE and ROLLUP clauses     331



    Grouping sets algebra     333



    Materializing grouping sets     334



    Sorting     337



    Conclusion     339



    Chapter 5: TOP and OFFSET-FETCH     341



    The TOP and OFFSET-FETCH filters     341



    The TOP filter     341



    The OFFSET-FETCH filter     345



    Optimization of filters demonstrated through paging     346



    Optimization of TOP     346



    Optimization of OFFSET-FETCH     354



    Optimization of ROW_NUMBER     358



    Using the TOP option with modifications     360



    TOP with modifications     360



    Modifying in chunks     361



    Top N per group     363



    Solution using ROW_NUMBER     364



    Solution using TOP and APPLY     365



    Solution using concatenation (a carry-along sort)     366



    Median     368



    Solution using PERCENTILE_CONT     369



    Solution using ROW_NUMBER     369



    Solution using OFFSET-FETCH and APPLY     370



    Conclusion     371



    Chapter 6: Data modification     373



    Inserting data     373



    SELECT INTO     373



    Bulk import     376



    Measuring the amount of logging     377



    BULK rowset provider     378



    Sequences     381



    Characteristics and inflexibilities of the identity property     381



    The sequence object     382



    Performance considerations     387



    Summarizing the comparison of identity with sequence     394



    Deleting data     395



    TRUNCATE TABLE     395



    Deleting duplicates     399



    Updating data     401



    Update using table expressions     402



    Update using variables     403



    Merging data     404



    MERGE examples     405



    Preventing MERGE conflicts     408



    ON isn't a filter     409



    USING is similar to FROM     410



    The OUTPUT clause     411



    Example with INSERT and identity     412



    Example for archiving deleted data     413



    Example with the MERGE statement     414



    Composable DML     417



    Conclusion     417



    Chapter 7: Working with date and time     419



    Date and time data types     419



    Date and time functions     422



    Challenges working with date and time     434



    Literals     434



    Identifying weekdays     436



    Handling date-only or time-only data with DATETIME and SMALLDATETIME     439



    First, last, previous, and next date calculations     440



    Search argument      445



    Rounding issues     447



    Querying date and time data     449



    Grouping by the week     449



    Intervals     450



    Conclusion     471



    Chapter 8: T-SQL for BI practitioners     473



    Data preparation     473



    Sales analysis view     474



    Frequencies     476



    Frequencies without window functions     476



    Frequencies with window functions     477



    Descriptive statistics for continuous variables     479



    Centers of a distribution     479



    Spread of a distribution     482



    Higher population moments     487



    Linear dependencies     495



    Two continuous variables     495



    Contingency tables and chi-squared     501



    Analysis of variance     505



    Definite integration     509



    Moving averages and entropy     512



    Moving averages     512



    Entropy     518



    Conclusion     522



    Chapter 9: Programmable objects     525



    Dynamic SQL     525



    Using the EXEC command     525



    Using the sp_executesql procedure     529



    Dynamic pivot     530



    Dynamic search conditions     535



    Dynamic sorting     542



    User-defined functions     546



    Scalar UDFs     546



    Multistatement TVFs     550



    Stored procedures     553



    Compilations, recompilations, and reuse of execution plans     554



    Table type and table-valued parameters     571



    EXECUTE WITH RESULT SETS     573



    Triggers     575



    Trigger types and uses     575



    Efficient trigger programming     581



    SQLCLR programming     585



    SQLCLR architecture     586



    CLR scalar functions and creating your first assembly     588



    Streaming table-valued functions     597



    SQLCLR stored procedures and triggers     605



    SQLCLR user-defined types     617



    SQLCLR user-defined aggregates     628



    Transaction and concurrency     632



    Transactions described     633



    Locks and blocking     636



    Lock escalation     641



    Delayed durability     643



    Isolation levels     645



    Deadlocks     657



    Error handling     662



    The TRY-CATCH construct     662



    Errors in transactions     666



    Retry logic     669



    Conclusion     670



    Chapter 10: In-Memory OLTP     671



    In-Memory OLTP overview     671



    Data is always in memory     672



    Native compilation     673



    Lock and latch-free architecture     673



    SQL Server integration     674



    Creating memory-optimized tables     675



    Creating indexes in memory-optimized tables     676



    Clustered vs. nonclustered indexes     677



    Nonclustered indexes     677



    Hash indexes     680



    Execution environments     690



    Query interop     690



    Natively compiled procedures     699



    Surface-area restrictions     703



    Table DDL     703



    DML     704



    Conclusion     705



    Chapter 11: Graphs and recursive queries     707



    Terminology     707



    Graphs     707



    Trees     708



    Hierarchies     709



    Scenarios     709



    Employee organizational chart     709



    Bill of materials (BOM)     711



    Road system     715



    Iteration/recursion     718



    Subgraph/descendants     719



    Ancestors/path     730



    Subgraph/descendants with path enumeration     733



    Sorting     736



    Cycles     740



    Materialized path     742



    Maintaining data     743



    Querying     749



    Materialized path with the HIERARCHYID data type     754



    Maintaining data     756



    Querying     763



    Further aspects of working with HIERARCHYID     767



    Nested sets     778



    Assigning left and right values     778



    Querying     784



    Transitive closure     787



    Directed acyclic graph     787



    Conclusion     801



    Index     803