出版時間:2010年9月 出版社:電子工業(yè)出版社 作者:本·甘(ItzikBen-Gan) 頁數(shù):583 譯者:成保棟 李保強
Tag標簽:無
前言
我以前短暫地見過幾次Itzik Ben-Gan,久聞他的大名,所以很期待在PASS的一次下午會議中聽他介紹如何在SQL編程中避免使用游標。很幸運,我提早到了那里,隨后會議室里就擠滿了人。Itzik帶來了兩個SQL編程問題,他用嫻熟的技巧和有趣的方式,將它們輕松玩弄于股掌之間,展示了面向合集的思維是多么優(yōu)雅和高效。聽眾們喜歡這種思維方式,我也一樣,只是我從另一個角度來看待這些。因為我對SQL Server的內(nèi)部機制已經(jīng)有所了解,所以我能看得出來,Itzik在他的演示中已經(jīng)觸及了SQL Server的神經(jīng),很欣賞他能把SQL Server的一些特性轉(zhuǎn)變成漂亮的解決方案。會后,我問一位聽眾,他的主要收獲是什么,很好奇眾多技術(shù)中的哪些能給他留下深刻印象。這位聽眾打量了我一下,稍微有些吃驚,接著只說了一句話:“這個人是個天才!”——總結(jié)得多么好的一句話?! ∮螛藛栴}要比它表面看起來的更加基礎(chǔ)。它反映了兩種思維方式的深刻分化,具有巨大的實際重要性。我們當中的大多數(shù)人接受的教育是,在編程時,要把一個任務(wù)細分成多個更小的步驟,按一定的順序執(zhí)行程序,進行想要的計算。但是,如果也按這種思想來處理SQL編程,那么最終只能得到平庸的結(jié)果。不僅寫出來的代碼非常長,難以維護,而且代碼的效率不高、不靈活、不大可能進行性能優(yōu)化。有效使用SQL,不是要把原來基于過程的編程技巧也擴展到SQL上來,也不僅僅是一套特殊的技巧。寫好SQL,需要我們用一種不同的思維方式來處理問題,這是一種面向聲明和集合的思維方式,而不是面向過程的。這就是兩種思維方式的分化?! ∪绾卫斫膺@種聲明式的、面向集合的思維方式,成為一名熟練的SQL程序員?《Microsoft SQL Server 2008技術(shù)內(nèi)幕:T-SQL查詢》這本書把所有需要的要素綜合起來,是對SQL Server開發(fā)社區(qū)的一大突出貢獻。書中關(guān)于數(shù)據(jù)庫范式基礎(chǔ)的章節(jié)可以幫助你理解T-SQL這一語言思想體系的基礎(chǔ),體會它的潛質(zhì)。從T-SQL的基礎(chǔ)操作到最高級的功能特性,這本書詳細介紹了語言本身的各個方面,所有內(nèi)容都基于如何解決現(xiàn)實的問題來進行講述。通過很多例子向讀者演示了好的SQL應(yīng)該是什么樣的,其中涉及的一些通用模式,在編寫應(yīng)用程序時都很有可能用到。
內(nèi)容概要
本書全面深入地介紹了Microsoft SQL Server 2008中高級T-SQL查詢、性能優(yōu)化等方面的內(nèi)容,以及SQLServer 2008新增加的一些特性。主要內(nèi)容包括SQL的基礎(chǔ)理論、查詢優(yōu)化、查詢算法及復(fù)雜度,以及在使用子查詢、表表達式、排名函數(shù)、數(shù)據(jù)聚合和透視轉(zhuǎn)換、TOP和APPLY、數(shù)據(jù)修改、分區(qū)表、特殊數(shù)據(jù)結(jié)構(gòu)等實際應(yīng)用時會遇到的各種高級查詢問題和解決方案。 作為一本講述T-SQL高級查詢的專業(yè)圖書,本書旨在結(jié)合實踐中的各種常見問題,教讀者如何用SQL作為語言工具來思考問題,揭示基于集合查詢的強大威力。本書內(nèi)容豐富、文字簡潔明快,列舉的實例具有一定的難度,而且實用性很強,可以把它們作為解決實際問題的標準模式。閱讀本書,可以充分地理解T-SQL,語言和良好的編程實踐,學會如何編寫更加有效而強大的查詢語句。 本書適合有經(jīng)驗的程序員和:DBA閱讀,是在SQLServer2008中編寫和優(yōu)化SQL查詢的必備參考圖書。
作者簡介
Itzik Ben-Gan,是Solid Quality Mentors的首席顧問和創(chuàng)始人。99年以來一直是SQL Server方面的Microsoft MvP。Itzik在世界各地從事T-SQL查詢.編程和查詢優(yōu)化相關(guān)的培訓和咨詢工作。他為SQL Server Magazine和MSDN撰寫了很多文章,并受邀在許多業(yè)界的專題會議上發(fā)表演講。包括Tech-Ed、DevWeek、PASS和SQL Server Magazine Connections?! ubor Kollar,是微軟公司SQL Server Customer Advisory Team的Group Program Manager。從事世界范圍內(nèi)最具挑戰(zhàn)性的SQL Server開發(fā)。他有超過1 3年SQL Server開發(fā)經(jīng)驗?! ejan Sarka,是認證講師(MCT)、微軟認證I傳家(MCITP)、微軟認證數(shù)據(jù)庫管理員(MCDBA)、SQL Server MVP,從事開發(fā)數(shù)據(jù)庫和商業(yè)智能解決方案。他也是Solid Quality Mentors的顧問,出席過Tech. Ed PASS和SQL Server DevCon?! teve Kass,博士,是SQL Server MVP,也是數(shù)學和計算機科學的教授。他為SQL Server Magazine撰寫文章,并曾在SQL Server Magazine Connections上發(fā)表演講。
書籍目錄
序言致謝前言第1章 邏輯查詢處理第2章 集合論和謂詞邏輯第3章 關(guān)系模型第4章 查詢優(yōu)化第5章 算法和復(fù)雜性第6章 子查詢、表表達式和排名函數(shù)第7章 聯(lián)接和集合運算第8章 數(shù)據(jù)聚合和透視第9章 TOP和APPLY第10章 數(shù)據(jù)修改第11章 查詢分區(qū)表第12章 圖、樹、層次結(jié)構(gòu)和遞歸查詢索引
章節(jié)摘錄
分析執(zhí)行計劃 執(zhí)行計劃是優(yōu)化器生成的用于確定如何處理一個給定查詢的“工作計劃”。一個計劃包含一組運算符,通常按照特定的順序來應(yīng)用這些運算符。一些運算符可以在它們前面的運算符還在處理時被應(yīng)用。一些運算符可能應(yīng)用多次。而且,如果優(yōu)化器選擇了并行計劃(parallel plan),那么計劃的一些分支還有可能會被并行調(diào)用。在計劃中,優(yōu)化器負責決定查詢以什么順序來訪問表、使用哪些索引和應(yīng)用什么樣的訪問方法、使用哪種聯(lián)接算法等等。實際上,對于給定的查詢,優(yōu)化器會評估多個執(zhí)行計劃,并從生成的多個計劃中選擇一個開銷最低的計劃。注意,SQL server可能不會為給定的查詢生成所有可能的執(zhí)行計劃。如果總是要生成所有的執(zhí)行計劃,那么優(yōu)化過程可能會太長。SQL Serer將根據(jù)一些因素(如查詢所涉及到的表的長度)來計算優(yōu)化過程的臨界值。一種臨界值是基于時間的,SQL Server不會在優(yōu)化上花費比該時間臨界值更長的時間。還有一種臨界值是基于開銷的,也就是說,如果找到一個開銷比該臨界值更低的計劃,就認為這個計劃“足夠好”,這時就會停止優(yōu)化,并使用該計劃?! ≡谶@兩本書中,會經(jīng)常分析查詢的執(zhí)行計劃。這一節(jié)和下一節(jié)(“索引優(yōu)化”)將介紹相關(guān)的背景知識,幫助你理解那些涉及分析執(zhí)行計劃的討論。但本節(jié)的目的不是讓你熟悉所有可能的運算符,而是讓你了解分析執(zhí)行計劃的技巧。在“索引優(yōu)化”一節(jié)中將介紹與索引有關(guān)的運算符,在本書的后面還將詳細解釋其他的運算符,例如,與聯(lián)接有關(guān)的運算符將在第7章“聯(lián)接和集合運算”中介紹。圖形化的執(zhí)行計劃 這兩本書廣泛使用了圖形化的執(zhí)行計劃。在SSMS中既可以得到估計的執(zhí)行計劃(按Ctrl+L鍵),也可以在生成查詢輸出的同時得到實際的執(zhí)行計劃(按Ctrl+M鍵)。不過,這兩種計劃通常都是一樣的,記住,執(zhí)行計劃是在查詢執(zhí)行之前生成的。然而,當請求估計的計劃時,查詢根本不會運行。很明顯,有些測量數(shù)據(jù)只在運行時才能收集(例如,每個運算符返回的實際行數(shù),以及運算符的實際執(zhí)行次數(shù))。在估計的計劃中,可以看到一些估計的測量值,這些值只有在運行時才能收集到真實的數(shù)據(jù),而實際的計劃則會顯示實際的數(shù)據(jù)和一些相同的估計值?! ?/pre>編輯推薦
精通T-SQL高級查詢和性能優(yōu)化的幕后機制,編寫更快,更具伸縮性的代碼。作者團隊用精深而富有洞察力的T-SQL知識幫助開發(fā)人員解決最棘手的基于集合的查詢和性能優(yōu)化問題,加深開發(fā)人員對T-SQL體系結(jié)構(gòu)和內(nèi)部處理細節(jié)的理解。通過各種實用方法和高級技術(shù)提高代碼質(zhì)量。 你將學到: 從面向過程的編程到基于集合的語言及思維邏輯的轉(zhuǎn)變;使用自頂向下的方法論優(yōu)化查詢;根據(jù)算法復(fù)雜度預(yù)測性能;比較各種數(shù)據(jù)聚合技術(shù),包括新的分組集;管理數(shù)據(jù)操作(插入、刪除、更新和合并),提高性能;針對分區(qū)表編寫更有效的查詢;處理圖、樹和層次結(jié)構(gòu),以及遞歸查詢;通過純邏輯難題來磨練解決問題的能力。圖書封面
圖書標簽Tags
無評論、評分、閱讀與下載
Microsoft SQL Server 2008技術(shù)內(nèi)幕:T-SQL查詢 PDF格式下載