SQL Server 2008數(shù)據(jù)庫分布式查詢知識(shí)
在接觸公司一個(gè)系統(tǒng)時(shí),公司使用的是SQL Server 2008數(shù)據(jù)庫,里面涉及到了多個(gè)數(shù)據(jù)庫之間的查詢,而且數(shù)據(jù)庫是分布式的,數(shù)據(jù)庫分布在多臺(tái)服務(wù)器之間,并且各個(gè)數(shù)據(jù)庫各盡其責(zé),負(fù)責(zé)存放不同模塊功能的數(shù)據(jù)。這里面就要涉及到了數(shù)據(jù)庫的分布式查詢。
補(bǔ)充一下分布式查詢的知識(shí):
分布式查詢從多異類數(shù)據(jù)源中訪問數(shù)據(jù)。這些數(shù)據(jù)源可以存儲(chǔ)在同一臺(tái)計(jì)算機(jī)或不同的計(jì)算機(jī)上。Microsoft SQL Server 通過使用 OLE DB 來支持分布式查詢。
SQL Server 用戶可以使用分布式查詢?cè)L問以下內(nèi)容:
- 存儲(chǔ)在多個(gè) SQL Server 實(shí)例中的分布式數(shù)據(jù)。
- 存儲(chǔ)在各種可以使用 OLE DB 訪問接口訪問的關(guān)系和非關(guān)系數(shù)據(jù)源中的異類數(shù)據(jù)。
OLE DB 訪問接口將在稱為行集的表格格式對(duì)象中公開數(shù)據(jù)。SQL Server 允許在 Transact-SQL 語句中像引用 SQL Server 表一樣引用 OLE DB 訪問接口中的行集。
外部數(shù)據(jù)源中的表和視圖可以在 SELECT、INSERT、UPDATE 和 DELETE Transact-SQL 語句中直接引用。因?yàn)榉植际讲樵兪褂?OLE DB 作為基本接口,因此它們不僅可以訪問帶有 SQL 查詢處理器的傳統(tǒng) DBMS 系統(tǒng),也可以訪問復(fù)雜的、具有不同功能的數(shù)據(jù)源所管理的數(shù)據(jù)。只要擁有數(shù)據(jù)的軟件通過 OLE DB 訪問接口在表格格式行集中公開其數(shù)據(jù),就可在分布式查詢中使用此數(shù)據(jù)
因?yàn)楣镜臉I(yè)務(wù)要經(jīng)常使用不同服務(wù)器上的數(shù)據(jù)庫,所以公司的數(shù)據(jù)庫都建立了一堆的鏈接服務(wù)器。通過建立這些鏈接服務(wù)器,就可以使用這些鏈接服務(wù)器的別名來簡(jiǎn)化SQL語句的編寫和sql開銷;
使用SQL SERVER 2008管理工具可以直接界面化的添加鏈接服務(wù)器;這里給出使用sql語句,利用系統(tǒng)存儲(chǔ)過程來添加鏈接服務(wù)器的方法,這里要用到兩個(gè)存儲(chǔ)過程:
sp_addlinkedserver sp_addlinkedsrvlogin
一個(gè)是添加鏈接服務(wù)器,一個(gè)是添加鏈接服務(wù)器連接登陸驗(yàn)證;具體此兩個(gè)存儲(chǔ)過程參數(shù)含義,請(qǐng)參考微軟手冊(cè);注意,執(zhí)行此存儲(chǔ)過程登陸的用戶必須要有Sysadmin權(quán)限才能執(zhí)行;
假設(shè)現(xiàn)在在10.155.25.100 上的db中要使用10.155.24.101上一個(gè) FlieDB01表中的信息;則在10.155.25.100上進(jìn)行如下SQL 語句:
exec sp_addlinkedserver @server='SZDB01', --要添加的連接服務(wù)器的別名 @srvproduct='', @provider='SQLOLEDB',--指定通過SQLOLEDB鏈接 @datasrc='10.155.24.101'--DB地址 exec sp_addlinkedsrvlogin 'SZDB01',--連接服務(wù)器的別名 'false', NULL, 'szUSER',--登陸用戶名 'Password@123'--登陸密碼 --執(zhí)行完之后就可以寫這樣的查詢語句了 select * from openquery([SZDB01],'select file_No,file_Name from FileDB01.dbo.getFileList()') as tableA --這里的DZDB01就是上面添加的連接服務(wù)器的別名
有多個(gè)就添加多個(gè)連接服務(wù)器;這是其中的一種;
還有一種就是使用opendatasource,這是SQL的一個(gè)函數(shù),其能夠打開指定的DB,而且這個(gè)函數(shù)的執(zhí)行權(quán)限很低,技術(shù)手冊(cè)中說任何人都可以執(zhí)行此函數(shù);這個(gè)函數(shù)也是hacker常用的數(shù)據(jù)爆表的一個(gè)手段;目前查看SQL Server 2008的手冊(cè)中,其說明還是說所有人都有權(quán)限執(zhí)行;
這個(gè)函數(shù)只能是不常用的查詢中會(huì)用到;
舉一個(gè)簡(jiǎn)單的例子:
select * from opendatasource('SQLOLEDB','Data Source=10.155.24.100;User ID="szUSER";Password="Password@123"') as tableA
這個(gè)也是對(duì)上面的一種實(shí)現(xiàn);
opendatasource還可以直接打開mdb這類文件。這種我就沒有去試驗(yàn)了,技術(shù)從書中有說明;
select * from opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source="d:/abcd.mdb"')
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)我們的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
上一篇:sqlserver/mysql按天、按小時(shí)、按分鐘統(tǒng)計(jì)連續(xù)時(shí)間段數(shù)據(jù)【推薦】
欄 目:MsSql
下一篇:SQL對(duì)數(shù)據(jù)進(jìn)行按月統(tǒng)計(jì)或?qū)?shù)據(jù)進(jìn)行按星期統(tǒng)計(jì)的實(shí)例代碼
本文標(biāo)題:SQL Server 2008數(shù)據(jù)庫分布式查詢知識(shí)
本文地址:http://mengdiqiu.com.cn/a1/MsSql/10323.html
您可能感興趣的文章
- 01-10SQLServer存儲(chǔ)過程實(shí)現(xiàn)單條件分頁
- 01-10SQL Server 2012降級(jí)至2008R2的方法
- 01-10SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù)的方法詳解
- 01-10SQL Server數(shù)據(jù)庫定時(shí)自動(dòng)備份
- 01-10SQL Server性能調(diào)優(yōu)之緩存
- 01-10實(shí)現(xiàn)SQL Server 原生數(shù)據(jù)從XML生成JSON數(shù)據(jù)的實(shí)例代碼
- 01-10Sql Server 死鎖的監(jiān)控分析解決思路
- 01-10SqlServer 在事務(wù)中獲得自增ID的實(shí)例代碼
- 01-10SqlServer快速檢索某個(gè)字段在哪些存儲(chǔ)過程中(sql 語句)
- 01-10SQLServer性能優(yōu)化--間接實(shí)現(xiàn)函數(shù)索引或者Hash索引


閱讀排行
- 1C語言 while語句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10SQLServer存儲(chǔ)過程實(shí)現(xiàn)單條件分頁
- 01-10SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù)的方
- 01-10SQL Server 2012降級(jí)至2008R2的方法
- 01-10SQL Server性能調(diào)優(yōu)之緩存
- 01-10SQL Server數(shù)據(jù)庫定時(shí)自動(dòng)備份
- 01-10Sql Server 死鎖的監(jiān)控分析解決思路
- 01-10實(shí)現(xiàn)SQL Server 原生數(shù)據(jù)從XML生成JSON數(shù)
- 01-10SqlServer快速檢索某個(gè)字段在哪些存儲(chǔ)
- 01-10SqlServer 在事務(wù)中獲得自增ID的實(shí)例代
- 01-10SQLServer性能優(yōu)化--間接實(shí)現(xiàn)函數(shù)索引或
隨機(jī)閱讀
- 01-10delphi制作wav文件的方法
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什