微軟需要改進(jìn)SQL Server的六大功能
很長(zhǎng)時(shí)間以來(lái),我一直在使用Microsoft SQL Server。最開始,我使用的是SQL 4.2,這是Sybase SQL Server 4.9的一個(gè)移植版本,運(yùn)行在Windows for Workgroups 3.11系統(tǒng)上,這都是很久以前的事情了。從那以后,微軟的SQL產(chǎn)品已經(jīng)走過(guò)了漫長(zhǎng)的道路,而今年年底,微軟又將推出新版本的SQL 10.0,也就是被業(yè)界炒得沸沸揚(yáng)揚(yáng)的SQL Server 2008。經(jīng)過(guò)這么多年的不斷完善,SQL產(chǎn)品肯定接近完美了,是不是?而事實(shí)并非如此。下面我就詳細(xì)介紹一下我希望微軟能夠改進(jìn)的SQL 6大功能,但愿能夠在SQL Server 2008看到這些變化。
1.SSMS 自動(dòng)刷新
在老版的企業(yè)管理器中,一件令人感到很討厭的事情是當(dāng)你創(chuàng)建一個(gè)新的對(duì)象時(shí),比如一個(gè)數(shù)據(jù)庫(kù)或一個(gè)表,您需要手動(dòng)刷新對(duì)象資源管理器(Object Explorer),這樣才能看到新創(chuàng)建的對(duì)象。這種現(xiàn)象仍然存在于SQL Server Management Studio中,即使它在2005年被徹底重寫了,這件事情很惱人,因?yàn)槟惚仨毷謩?dòng)刷新包含新對(duì)象的那個(gè)文件夾。僅僅單擊“F5”是不會(huì)解決問(wèn)題的。SSMS在后臺(tái)完成了那么多工作,那么,為什么不把這一功能交給SSMS來(lái)完成呢?
2.負(fù)載平衡的數(shù)據(jù)庫(kù)鏡像
當(dāng)SQL Server 2005宣布具備數(shù)據(jù)庫(kù)鏡像(Database Mirroring)功能時(shí),微軟承諾給我們一個(gè)數(shù)據(jù)保護(hù)和負(fù)載平衡的解決方案,不需要群集就能實(shí)現(xiàn)透明的故障和客戶端重定向。SQL Server 2008實(shí)現(xiàn)了幾乎所有這些功能,除了負(fù)載平衡。在故障發(fā)生之前,鏡像數(shù)據(jù)庫(kù)不得不處于“Restoring”或“No Recovery”模式下,這使得鏡像數(shù)據(jù)庫(kù)不能用于負(fù)載平衡查詢。的確,你可以對(duì)鏡像數(shù)據(jù)庫(kù)拍快照(snapshot),但是,這只是一個(gè)基于時(shí)間點(diǎn)的快照,并不能反映最新的數(shù)據(jù)庫(kù)更新。我認(rèn)為這是由設(shè)計(jì)缺陷造成的。在修整這一缺陷之前,我不得不使用點(diǎn)對(duì)點(diǎn)復(fù)制(Peer-to-Peer Replication)或日志傳送(Log Shipping)進(jìn)行負(fù)載平衡。
3. SSMS內(nèi)置日志管理器(Log Explore)
通常,開發(fā)商對(duì)待事務(wù)日志(Transaction Log)的通用路線是,把它以某種內(nèi)部或私有格式儲(chǔ)存,用戶無(wú)法查看或手動(dòng)修改。如果你想要查看存儲(chǔ)在Transaction Log中的事務(wù)記錄,或者有選擇性重新執(zhí)行某些事務(wù)而不擾亂其它事務(wù)的話,出你需要使用一個(gè)第三方的工具,比如Lumigent的Log Explorer。微軟應(yīng)該將這種技術(shù)內(nèi)置到SSMS中。微軟至今沒(méi)有收購(gòu)該技術(shù),這令我感到很奇怪。我猜想肯定是因?yàn)長(zhǎng)umigent要價(jià)太高了。也許要比收購(gòu)雅虎的價(jià)格要便宜一些。
4. ReportBuilder RDL應(yīng)該更為精確,以便能為BIDS提供更好的服務(wù)
ReportBuilder真的很酷,它能夠讓你使用報(bào)告模型非常迅速地創(chuàng)建強(qiáng)大的報(bào)告。你甚至可以讓你的用戶自己創(chuàng)建專案報(bào)告。或者把它放在你的口袋里,以便能在你預(yù)約體育鍛煉的空閑間隙快速地開發(fā)報(bào)告---想象一下,這會(huì)給你的用戶留下多么深刻的印象啊(開玩笑!)。ReportBuilder的神奇之處就在于它能生成RDL(報(bào)告定義語(yǔ)言),RDL是Report Services 中所有報(bào)告的XML源格式。這意味著你可以在Business Intelligence Development Studio (BIDS)中,用報(bào)表設(shè)計(jì)器(Report Designer)打開內(nèi)置于ReportBuilder中的報(bào)告,從而進(jìn)行進(jìn)一步的修改和優(yōu)化。除了BIDS數(shù)據(jù)集的定義不是很正確,需要進(jìn)行一些人工干預(yù)來(lái)糾正這些錯(cuò)誤。不過(guò),微軟若要修改這一功能應(yīng)該不會(huì)花費(fèi)太多時(shí)間。
5.完整備份(Full Backup)應(yīng)該截?cái)嗍聞?wù)日志
自從SQL Server產(chǎn)品問(wèn)世以來(lái),完整的數(shù)據(jù)庫(kù)備份(Full Database Backup)是不截?cái)嗍聞?wù)日志的。這意味著在全面修復(fù)模型(Full Recovery Model)下,事物日志會(huì)繼續(xù)無(wú)限增長(zhǎng),除非你經(jīng)常單獨(dú)運(yùn)行進(jìn)行事務(wù)日志備份(Transaction Log Backups)。鑒于Microsoft Exchange Full Backup是截?cái)嗍挛镉涗浀模晕覀優(yōu)槭裁丛赟QL Server上也這么做呢?對(duì)于那些聽說(shuō)微軟正在把SQL Server推進(jìn)到“自我調(diào)整”模式的新用戶來(lái)說(shuō),這將是很有幫助的。
6.“開源”的報(bào)告管理器
內(nèi)置在ASP.NET 2005中的報(bào)告管理器(Report Manager)是一個(gè)相當(dāng)笨重的Web應(yīng)用。不過(guò)現(xiàn)在,它在本地.NET代碼中被重寫了,所以我們不必使用IIS or ASP.NET。這簡(jiǎn)直好極了。但是,把源代碼給我們,那么我們自己就能夠優(yōu)化這個(gè)前端應(yīng)用,這是不是太接近開源了?或許我們稱之為共享源代碼(Shared Source)更為準(zhǔn)確。
