1. 程式人生 > >資料庫視訊-第十七-第二十一章

資料庫視訊-第十七-第二十一章

【使用.NET訪問SQL Server 2008】
1.ADO.NET基礎知識
ADO.NET提供對Microsoft SQL Server等資料來源以及通過OLE DB和XML公開的資料來源的一致訪問。資料共享使用者應用程式可以使用ADO.NET來連線到這些資料來源,並檢索、操作和更新資料。
ADO.NET有效地從資料操作中將資料訪問分解為多個可以單獨使用或一前一後使用的不連續元件。ADO.NET包含用於連線到資料庫、執行命令和檢索結果的.NET Framework資料提供程式。可以直接處理檢索到的結果,或將其放入ADO.NETDataSet物件,以便與來自多個源的資料或在層之間進行遠端處理的資料組合在一起,以特殊方式向用戶公開。

ADO.NETDataSet物件也可以獨立於.NET Framework資料提供程式使用,以管理應用程式本地的資料或源自XML的資料。
2.ADO.NET組成
在這裡插入圖片描述

【監視SQL Server 2008】
過程:
1.建立跟蹤(工具—>SQL Server Profiler)
2.資料庫優化導向(工具—>資料庫引擎優化顧問)
3.跟蹤應用程式

【使用CLR訪問SQL Server 2008】
1.CLR函式
新建專案—>C#—>SQL Server專案—>新增新引用—>測試連線—>成功
右擊專案—>新增—>使用者自定義函式—>名稱—>成功
2.CLR儲存過程


右擊專案—>新增—>儲存過程
3.CLR觸發器
右擊專案—>新增—>觸發器

【使用SMO訪問SQL Server 2008】
1.SMO概念
SMO(SQL Management Objects、SQL Server管理物件)是SQL Server 2008自身提供的一個特殊物件庫,使用它可以在SQL Server Management Studio中執行建立新登入與角色、監視警報、安裝複製和連結伺服器上的表等操作。因為我們可以使用SMO來處理普通的SQL Server 2008管理。SMO主要有以下兩大特點:
包含SQL Server特有的許多物件
以管理功能而不是資料為目標。
2.過程


1)建立SMO專案
新建C#專案—>Windows窗體應用程式-新增引用-設計介面:檢視-工具箱-按鈕
2)連線SQL Server
新建控制檯應用程式-完成
3)使用SMO建立資料庫
4)使用SMO建立資料表
5.)使用SMO建立儲存過程
6)使用SMO建立觸發器

【SQL的其他操作】
1.SQL記憶體分配
伺服器—屬性—記憶體
2.PowerShell 1.0
PowerShell是微軟的下一代命令直譯器的Shell程式,能夠讓管理員自動化和控制Windows桌面及伺服器。PowerShell原來的開發代號是Monad,原計劃是用以替代Windows中的命令列工具,但是後來微軟說它只是技術上的擴充。使用PowerShell,管理員可以做任何在圖形介面下所做的事情。Windows PowerShell 1.0可以執行在Windows XP SP2、Windows Server 2003和Windows Vista上。
3.複製概念
複製是一種技術,可以SQL Server 2008的資料和資料庫物件從一個數據庫複製和分發到另一個數據庫,然後在資料庫間進行同步,以維持一致性。使用複製技術,可以在區域網和廣域網、撥號連線、無線連線和Internet上將資料分發到不同位置以及分發給遠端或移動使用者。
4.複製釋出模型
複製使用出版業術語表示複製拓撲中的元件,其中有釋出伺服器、分發伺服器、訂閱伺服器、釋出、專案和訂閱。
在這裡插入圖片描述
5.複製型別
1)事務複製
事務複製通常從釋出資料庫物件和資料的快照開始,建立了初始快照後,接著在釋出伺服器上所做的資料更改和架構修改通常在修改發生時(幾乎實時)傳遞給訂閱伺服器,資料更改將按照其在釋出伺服器上發生的順序和事務邊界應用於訂閱伺服器,因此,在釋出內部可以保證事務的一致性。
2)合併複製
與事務複製相同,合併複製通常也是從釋出資料庫物件和資料的快照開始,並且觸發器跟蹤在釋出伺服器和訂閱伺服器上所做的後續資料更改和架構修改,訂閱伺服器在連線到網路時將與釋出伺服器進行同步,並交換自上次同步以來發布伺服器和訂閱伺服器之間發生更改的所有行。
3)快照複製
快照複製將資料以特定時刻的瞬時狀態分發,而不監視對資料的更新,發生同步時,將生成完整的快照並將其傳送到訂閱伺服器,當符合以下一個或多個條件時,使用快照複製本身是最合適的:
很少更改資料;
在一段時間內允許具有相對釋出伺服器已過時的資料副本;
複製少量資料;
在短期內出現大量更改。
6.建立快照發布
複製-本地釋出-右擊-新建釋出嚮導
7.建立快照訂閱
複製-本地訂閱-新建訂閱-新建訂閱嚮導
8.APPLY運算子
使用APPLY運算子,可以為實現查詢操作的外部表表達式返回的每個行呼叫表值函式。表值函式作為右輸入,外部表表達式作為左輸入。通過對右輸入求值來獲得左輸入每一行的計算結果,生成的行被組合起來作為最終輸出。APPLY運算子生成的列的列表是左輸入中的列集,後跟右輸入返回的列的列表。
APPLY有兩種形式:CROSS APPLY和OUTER APPLY。CROSS APPLY僅返回外部表中通過表值函式生成結果集的行。OUTER APPLY既返回生成結果集的行,也返回不生成結果集的行,其中表值函式生成的列中的值為NULL。

9.SQL 2008四個新的排序函式
1)ROW_NUMBER
ROW_NUMBER返回結果集分割槽內行的序列號,每個分割槽的第一行從1開始。格式為:
ROW_NUMBER()OVER([<partition_by_clause>]<order_by_clause>)
其中引數:
<partition_by_clause>
將FROM子句生成的結果集劃入應用了ROW_NUMBER函式的分割槽。
<order_by_clause>
確定將ROW_NUMBER值分配給分割槽中的行的順序。
2)RANK
RANK返回結果集的分割槽內每行的排名。行的排名是相關行之前的排名數加一。格式為:
RANK()OVER([<partition_by_clause>]<order_by_clause>)
其中引數:
<partition_by_clause>
將FROM子句生成的結果集劃分為要應用RANK函式的分割槽。
<order_by_clause>
確定將RANK值應用於分割槽中的行時所基於的順序。
3)DENSE_RANK
DENSE_RANK與RANK函式類似,只是在生成序號時是連續的,格式為:
DENSE_RANK()([<partition_by_clause>]<order_by_clause>)
4)NTILE
NTILE可以將有序分割槽中的行分發到指定數目的組中。各個組有編號,編號從1開始。對於,每一個行,NTILE將返回此行所屬的組的編號。格式為:
NTILE(integer_expression)OVER([<partition_by_clause>]<order_by_clause>)
引數integer_expression表示一個正整數常量。
10.SQL 2008的同義詞
1)語法
在這裡插入圖片描述
2)同義詞的物件型別
在這裡插入圖片描述