MS SQL Server:分區(qū)表、分區(qū)索引 詳解

目前成都創(chuàng)新互聯(lián)公司已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務器托管、網(wǎng)站托管維護、企業(yè)網(wǎng)站設(shè)計、安州網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
1. 分區(qū)表簡介
使用分區(qū)表的主要目的,是為了改善大型表以及具有各種訪問模式的表的可伸縮性和可管理性。
? 大型表:數(shù)據(jù)量巨大的表。
? 訪問模式:因目的不同,需訪問的不同的數(shù)據(jù)行集,每種目的的訪問可以稱之為一種訪問模式。
分區(qū)一方面可以將數(shù)據(jù)分為更小、更易管理的部分,為提高性能起到一定的作用;另一方面,對于如果具有多個CPU的系統(tǒng),分區(qū)可以是對表的操作通過并行的方式進行,這對于提升性能是非常有幫助的。
注意:只能在 SQL Server Enterprise Edition 中創(chuàng)建分區(qū)函數(shù)。只有 SQL Server Enterprise Edition 支持分區(qū)。
Sub 按鈕1_Click()
Dim i As Integer, j As Integer, sht As Worksheet 'i,j為整數(shù)變量;sht 為excel工作表對象變量,指向某一工作表
'Dim cn As New ADODB.Connection '定義數(shù)據(jù)鏈接對象 ,保存連接數(shù)據(jù)庫信息;請先添加ADO引用
'Dim rs As New ADODB.Recordset '定義記錄集對象,保存數(shù)據(jù)表
‘工具 ---〉引用 ---〉Microsoft ActiveX data objects ....
'下面兩句就不需要增加引用ADO
Set cn = CreateObject("Adodb.Connection")
Set rs = CreateObject("Adodb.Recordset")
Dim strCn As String, strSQL As String '字符串變量
Dim strCond As String
strCn = "Provider=sqloledb;Server=R9HDET7;Database=dbname;Uid=username;Pwd=password" '定義數(shù)據(jù)庫鏈接字符串
'下面的語句將讀取數(shù)據(jù)表數(shù)據(jù),并將它保存到excel工作表中:工作表為一張兩維表,記錄集也是一張兩維表
strSQL = "select CUSTOMER_NAME from VSC_BI_CUSTOMER " '定義SQL查詢命令字符串
cn.Open strCn '與數(shù)據(jù)庫建立連接,如果成功,返回連接對象cn
rs.Open strSQL, cn '執(zhí)行strSQL所含的SQL命令,結(jié)果保存在rs記錄集對象中
i = 2
Set sht = ThisWorkbook.Worksheets("Test") '把sht指向當前工作簿的Test工作表
Do While Not rs.EOF '當數(shù)據(jù)指針未移到記錄集末尾時,循環(huán)下列操作
sht.Cells(i, 1) = rs("CUSTOMER_NAME") '把當前記錄的字段1的值保存到sheet1工作表的第i行第1列
rs.MoveNext '把指針移向下一條記錄
i = i + 1 'i加1,準備把下一記錄相關(guān)字段的值保存到工作表的下一行
Loop '循環(huán)
rs.Close '關(guān)閉記錄集,至此,程序?qū)涯硵?shù)據(jù)表的字段1保存在excel工作表sheet1的第1列,行數(shù)等于數(shù)據(jù)表的記錄數(shù)
cn.Close '關(guān)閉數(shù)據(jù)庫鏈接,釋放資源
End Sub
至于對數(shù)據(jù)庫的讀寫操作分離,還是前臺代碼來確定。
對于只負責讀的數(shù)據(jù)庫可以對該訪問用戶設(shè)置為datareader角色即可,也可以防止數(shù)據(jù)寫了,不過這是數(shù)據(jù)庫方面權(quán)限的問題
sql server 的高可用部分 說的就是這種類似的需求 。但是在實際使用中,要考慮性能問題,lz設(shè)定的前提是讀寫在物理上分離。
這種在一定程度上就需要承擔部分數(shù)據(jù)的不一致(秒級差異也是差異),實際使用中碰到的 ,基本都可以有一定時間的差異(可以理解為很多標準量具中的公差),使用上是沒有什么問題的。
sql server 2008數(shù)據(jù)庫分離操作跟sql server 2005是一樣的,以下具體介紹如何分離sql server 數(shù)據(jù)庫:
1、打開 sql server 控制臺(SQL Server Management Studio),然后登錄。
2、登錄時如果知道sa密碼可以使用“SQL Server身份驗證”模式登錄,如果不知道sa密碼可以使用“windows身份驗證”模式登錄就不需要密碼登錄。而sql server 2008的用戶一般是在安裝的時候自定義的用戶,但也可以使用“windows身份驗證”模式登錄。
3、登錄到控制到中之后,找到【數(shù)據(jù)庫】點擊展開,然后找到你所需要分離的數(shù)據(jù)庫名稱。選中數(shù)據(jù)庫【右鍵】-【任務】-【分離】即可。
附件說明:分離數(shù)據(jù)庫一般是需要將數(shù)據(jù)庫拷貝到其他機器或者是移動磁盤時和不需要使用該數(shù)據(jù)庫的情況下才做數(shù)據(jù)庫分離。數(shù)據(jù)庫一旦分離之后所對應的軟件將無法正常使用和打開數(shù)據(jù)庫。如果需要重新將數(shù)據(jù)庫還原到數(shù)據(jù)庫控制臺中,選中【數(shù)據(jù)庫】-【右鍵】-【附加】,找到你所要附件的數(shù)據(jù)所在的磁盤路徑,選擇以“.MDF”為后綴的文件即可。
如果有時間字段,建議做分區(qū)表,按時間分區(qū),這樣表從物理上是分開的,但是對外還是一張表.
好處有1.原本的代碼結(jié)構(gòu)不用變2.查詢歷史數(shù)據(jù)的時候,速度仍然有保障3.如果建立觸發(fā)器進行自動分區(qū),理論上不管再用多少年,都不會再需要重新建表a2了
分享標題:sqlserver讀寫分表,sql分表分庫
分享網(wǎng)址:http://chinadenli.net/article27/dsgejcj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、移動網(wǎng)站建設(shè)、虛擬主機、面包屑導航、ChatGPT、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)