偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL Server數(shù)據(jù)庫對于應(yīng)用程序的關(guān)系

數(shù)據(jù)庫 SQL Server
以下的文章主要是介紹SQL Server數(shù)據(jù)庫與其實(shí)際應(yīng)用元數(shù)據(jù),SQL Server數(shù)據(jù)庫與其實(shí)際應(yīng)用元數(shù)據(jù)的一些知識,希望能夠在這些方面為大家補(bǔ)充點(diǎn)知識。

專家解答

大部分?jǐn)?shù)據(jù)庫管理員擁有某種形式的數(shù)據(jù)庫元SQL Server數(shù)據(jù)庫,他們依賴其來跟蹤范圍很廣的Microsoft SQL Server環(huán)境。我利用連接的服務(wù)器和分布式數(shù)據(jù)庫訪問來建立一個(gè)已經(jīng)在我的環(huán)境中使用了七年的元數(shù)據(jù)庫。它不是漂亮的,但它是功能性很強(qiáng)的。

跟很多IT開發(fā)者和數(shù)據(jù)庫管理員一樣,即使它有自身的不足我還是為自己的創(chuàng)造感到驕傲。它很慢,不像它可以的那樣***型,也不像它應(yīng)該的那樣安全。

自從讀了2007年5月和6月Rodney Landrum在SQL Server雜志上發(fā)表的關(guān)于SQL Server集成服務(wù)(SSIS)和數(shù)據(jù)庫管理員知識庫(DBA Repositories)的文章,我知道是時(shí)候采取別人的解決方法了。這對于我的環(huán)境來說是***的,而一些改動也是容易采納的。

2008年2月,一篇后續(xù)文章在SQL Server雜志上發(fā)表,在這篇文章里,Rodney更新了他的解決方法。我下載了代碼,在我的測試環(huán)境里審核,并迅速把它納入產(chǎn)品中。當(dāng)大家普遍地為這個(gè)解決方法所提供的而感到高興時(shí),在它包中缺少的一方面是把數(shù)據(jù)庫關(guān)聯(lián)到應(yīng)用程序的能力。

通過在他的解決方法中增加兩張額外的表,我可以在我的“土生土長”元數(shù)據(jù)庫中增加應(yīng)用程序元數(shù)據(jù)到我現(xiàn)在使用的SQL Server雜志的方法中。

增加到我數(shù)據(jù)庫中的應(yīng)用元數(shù)據(jù)包括創(chuàng)建兩張表:dbo.Applications,專為存儲所有程序的應(yīng)用名稱,而這些程序在我的環(huán)境中依賴于SQL Server數(shù)據(jù)庫,還有

dbo.Database_Applications,它保存SQL 實(shí)例、SQL Server數(shù)據(jù)庫和應(yīng)用程序之間的關(guān)系。

Applications Table CREATE TABLE [dbo].[Applications] (
[AppID] [int] IDENTITY(154,1) NOT NULL,
[ApplicationName] [varchar](100) NOT NULL, )
Database_Applications Table
CREATE TABLE [dbo].[Database_Applications] (
[DB_AppID] [int] IDENTITY(1,1) NOT NULL,
[ServerName] [varchar](50) NOT NULL,
[DatabaseName] [varchar](100) NOT NULL,
[ApplicationName] [varchar](100) NULL )

 

你可能注意到,我沒有規(guī)范化dbo.Database_Applications表。如果我規(guī)范化,我會只存儲兩個(gè)區(qū)域:一個(gè)與存儲我的應(yīng)用元數(shù)據(jù)的表有關(guān)的外鍵,和一個(gè)與我的元數(shù)據(jù)庫相對應(yīng)的外鍵。我有自己的原因:

我沒有處理大量的數(shù)據(jù):我有大概800個(gè)數(shù)據(jù)庫,這些SQL Server數(shù)據(jù)庫在我的環(huán)境里發(fā)布80個(gè)實(shí)例。雖然這對于一個(gè)數(shù)據(jù)庫管理員來說是個(gè)很大的環(huán)境,但是它既不轉(zhuǎn)變成在我的元數(shù)據(jù)表里的大量紀(jì)錄,也不轉(zhuǎn)變成數(shù)據(jù)庫的巨大字節(jié)。

不是通過dbo.Applications表的主鍵,而是包含表中的應(yīng)用程序名,我可以通過只訪問dbo.Database_Applications表產(chǎn)生我的主要應(yīng)用程序元數(shù)據(jù)報(bào)告(key Application Metadata report)。

我的環(huán)境中的SQL元數(shù)據(jù)庫使用“焦土政策”人口處理方法,除了SQL Agent Job History和Backup History,其他的表都被每天刪除和重新載入。我發(fā)現(xiàn)在

dbo.Database_Applications表中保存信息可以使我的生活變得很容易。

每日從我的環(huán)境中載入數(shù)據(jù)后,我可以通過以下腳本得到在我的環(huán)境中產(chǎn)生的任何新的數(shù)據(jù)庫的良好的陳述。

SELECT D.[Server], D.DatabaseName FROM dbo.Databases D LEFT JOIN dbo.Database_Applications DA ON D.DatabaseName = DA.DatabaseName AND D.[Server] = DA.[ServerName] WHERE DA.DB_AppID IS NULL ORDER BY D.[Server], D.DatabaseName


這個(gè)查詢的結(jié)果提供任何數(shù)據(jù)庫的清單,這些SQL Server數(shù)據(jù)庫產(chǎn)生于上次我更新應(yīng)用元數(shù)據(jù)和服務(wù)器時(shí),它不僅是跨域的數(shù)據(jù)庫創(chuàng)建活動的通知,也是致力于更新兩個(gè)數(shù)據(jù)庫來符合應(yīng)用程序信息的數(shù)據(jù)清單。這個(gè)查詢也適合SQL Server Reporting Services報(bào)告的數(shù)據(jù)表,而當(dāng)我不在辦公室時(shí),SQL Server Reporting Services報(bào)告也為我提供了一個(gè)新的數(shù)據(jù)庫到我的黑莓(BlackBerry)的日常通知。

***,我創(chuàng)建了以下存儲程序,由此用任何新的數(shù)據(jù)庫信息來合并dbo.Applications表和dbo.Database_Applications 表。它接受三個(gè)參數(shù):服務(wù)器,數(shù)據(jù)庫和應(yīng)用程序。如果應(yīng)用程序已經(jīng)不存在于dbo.Applications表中,它就會被補(bǔ)充。然后一個(gè)記錄被插入到服務(wù)器/數(shù)據(jù)庫/應(yīng)用程序關(guān)系中的dbo.Applications表。

CREATE PROCEDURE [dbo].[pAdd_Application]
@ServerName varchar(50),
@DatabaseName varchar(100),
@ApplicationName varchar(100)
AS --Add any new databases created,
but not recorded in the repository, to the repository
UPDATE dbo.Database_Applications
SET ApplicationName = @ApplicationName
WHERE ServerName = @ServerName
AND DatabaseName = @DatabaseName
AND ApplicationName IS NULL
--Determine if there is already an application
for this database in the repository, if not, then add it
IF (SELECT COUNT(*) FROM dbo.Applications
WHERE ApplicationName = @ApplicationName) = 0
BEGIN INSERT INTO dbo.Applications (ApplicationName)
VALUES (@ApplicationName)
PRINT 'Added new Application: '
+ @ApplicationName + ' to Applications table'
SELECT * FROM dbo.Applications
WHERE ApplicationName = @ApplicationName
END --List the new record in the repository
SELECT ServerName, DatabaseName, ApplicationName
FROM dbo.Database_Applications
WHERE ServerName = @ServerName
AND DatabaseName = @DatabaseName
AND ApplicationName = @ApplicationName

雖然我可以很容易地把這個(gè)存儲程序的執(zhí)行整合為SQL Server集成服務(wù)(SSIS)程序包中的***一步,而這個(gè)程序包能夠組裝我的存儲數(shù)據(jù)庫,但我選擇不這樣做,這是為了在我的環(huán)境里,我能密切關(guān)注圍繞新的SQL Server數(shù)據(jù)庫創(chuàng)造而展開的活動。希望上文中講到的內(nèi)容對大家能夠有所幫助。

【編輯推薦】

  1. SQL Server數(shù)據(jù)庫服務(wù)器高性能設(shè)置
  2. SQL Server數(shù)據(jù)庫維度表和事實(shí)表概述
  3. 改善SQL Server數(shù)據(jù)庫查詢速度慢的技巧

 

責(zé)任編輯:迎迎 來源: IT專家網(wǎng)
相關(guān)推薦

2010-07-14 13:14:01

SQL Server數(shù)

2009-04-02 10:26:27

2010-08-12 21:06:00

數(shù)據(jù)庫應(yīng)用程序數(shù)據(jù)庫安全

2010-08-12 21:13:49

數(shù)據(jù)庫安全應(yīng)用程序安全

2020-05-03 12:57:32

數(shù)據(jù)庫DIY管道

2021-02-23 23:06:31

數(shù)據(jù)庫Redis技術(shù)

2022-05-10 08:00:00

數(shù)據(jù)庫數(shù)據(jù)庫監(jiān)控監(jiān)控系統(tǒng)

2011-03-31 10:18:42

SQL Server數(shù)據(jù)體系應(yīng)用程序邏輯

2010-07-15 17:28:50

SQL Server

2022-10-24 14:21:09

數(shù)據(jù)庫應(yīng)用數(shù)據(jù)庫數(shù)據(jù)管理

2011-08-19 14:53:02

SQL ServerDataRelatio

2011-08-18 10:36:24

SQL ServerISNULL函數(shù)

2010-06-17 10:02:12

SQL Server數(shù)

2018-01-24 20:42:06

數(shù)據(jù)庫NoSQL驅(qū)動力

2009-12-23 10:35:55

WPF應(yīng)用程序項(xiàng)目

2010-07-08 11:05:14

SQL Server數(shù)

2010-06-30 08:41:21

SQL Server嵌

2011-07-20 16:03:06

SQL Server數(shù)分區(qū)表

2011-03-24 09:07:11

SQL Server數(shù)備份

2011-03-24 09:24:08

SQL Server數(shù)還原
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號