文|劉衛英
探討SQL Server數據庫的性能分析與優化策略研究
文|劉衛英
SQL Server是目前商業用戶使用較多的數據庫平臺,是目前安全可靠的存儲平臺,方便商業用戶構建和管理各種數據的應用程序。充分分析SQL Server數據庫的性能,掌握其技術的應用關系,可以為客戶提供更多的優化管理策略。
SQL Server數據庫將原始數據作為參考依據,該工作看似繁瑣,卻十分重要,用作分析和應用管理商業數據,非常便捷。SQL Server數據庫管理系統在國外應用非常好,但在國內,還處于起步階段,真正的數據運用還比較少,應用體現在做數據處理、數據分析,能用得上SQL Server數據庫為基礎的數據庫應用技術的行業是大型網站、銀行、醫院等。
數據庫應用的概念出現較早,早期數據倉庫建模就已經用到了數據應用,SQL Server數據庫管理應用技術是這幾年比較火的,趨勢很好,目前很多大型企業都在以SQL Server數據庫做管理應用技術。它具有使用方便可伸縮性好與相關軟件集成程度高等優點,可跨越多種平臺使用。
假設有多個數據庫,每個數據庫都有一個專屬的管理員,這樣就產生數據庫用戶的概念。不同的角色有著不同的權限。角色可以使用者自建,你給角色賦予多少個權限,再把角色賦予給用戶,用戶就有這么多的權限了。登錄帳號是對于服務器而言的,數據庫用戶是針對特定數據庫而言的。如果有多個數據庫,那么每個數據庫的用戶都屬于這臺SQL SERVER的Login User,而其中的一個或某幾個Login user只屬于某個數據庫的用戶,而對其他數據庫沒有操作權限。
基于SQL Server數據庫應用技術充分利用資源,應用價值,分析、評估客戶需求,對數據有透徹的了解,制訂并實施有效方案,依據方案,利用SQLServer數據庫、建立有效網絡關系,對相關信息進行分析、過濾,建立測評指標,協助解決處理障礙,進一步把握未來的發展走向。
SQL Server數據庫應用技術可以從企業不同層面的人的視角去分析企業的運營情況,通過預警和預測分析,為企業的經營決策提供支持,應用技術本身更多的是經營管理項目而不是一個純粹的IT項目。
SQL Server數據庫最主要的就是數據庫設計冗余,還包括SQL語言,存儲過程比一般的SQL語句快等;其次就是編程代碼的問題,如果用switch的話就會加速,還有就是循環操作數據時,網絡也在其中。數據過多,臨時表沒有及時清空,事務回滾,大量數據操作,電腦內存不足。總的來說影響到SQL Server數據庫性能的三個大因素,主要體現在應用程序性能,SQL語言性能以及B/S模式性能上。
(一)應用程序性能
應用程序是影響數據庫出問題的主因,應用程序是衡量數據庫性能的一項重要指標。一般說來,應用程序性能對SQL Server數據庫直接訪問的速度,反映了SQL Server數據庫存儲信息的能力。應用程序的性能對SQL Server數據庫的可使用性、靈活性和適應性以及效率高低都有著很大影響。通過優化應用程序的性能還增強SQL Server數據庫的性能。
(二)SQL語言性能
SQL語言性能則是決定了數據是否有效的一個指標。好比前臺與內部存儲的數據進行交互,后臺數據是通過一定的數據結構存儲起來的,為了便于前臺訪問這些后臺數據結構中的數據,便需要應用到SQL語言,通過這個通道將前臺與后臺溝通起來,溝通的過程中,前臺不需要知道后來的數據是如何存取的,數據都存在什么地方等信息。通過SQL語句,將數據插入到數據庫的數據表中;根據條件查詢某條或者多條記錄;根據指示對數據庫中的某條數據內容進行更新;刪除不需要的數據記錄;SQL語言支持一些特殊的計算功能,比如匯總,對某個列的值進行條件匯總。由此可看出SQL語言是優化SQL Server數據庫方便快捷度的一個指標。其優點體現在可以獨立完成數據庫中的全部操作,只需將需求指令交給系統,就能自動完成工作。功能強大,命令不多;語法簡單,易于掌握。有多種執行方式可以直接使用,也可以嵌入各種高級語言中使用。具有完備的查詢功能,是保障SQL Server數據庫性能穩定的要素之一。
(三)B/S模式性能
B/S模式是隨著英特爾技術的興起,新興的結構模式。其優點是大大簡化客戶端電腦載荷,減輕了系統維護與升級的成本和工作量,降低了用戶的總體成本。適用于用戶群龐大,好比以前的軟件架構大都是C/S模式,說得通俗一點就是要下載安裝軟件,而B/S模式是可以用瀏覽器訪問的,軟件部署到線上,不用下載到本地,直接訪問網址就可以使用,B/S模式即是瀏覽器和服務器計算模式。用戶可以直接通過輸入網址進行網頁的訪問,使用B/S計算模式時,開發的應用程序就是WEB應用程序。B/S 建立在廣域網之上, 不必采用專門的網絡硬件環境,適應范圍更強,一般只要有操作系統和瀏覽器就行,B/S模式建立在廣域網之上,然而相對安全的控制能力比較弱,數據安全性差,主要靠管理密碼的數據庫來維護??蛻舳肆憔S護,系統的擴展非常容易??梢噪S時隨地進行業務處理,可實現所有用戶的同步更新,共享性較強。
總的而言,分為應用程序優化和硬件優化,其中程序優化如下:
對應用程序,SQL語言模式,B/S模式進行有效性能優化處理。SQL Server數據庫使用方便,提供的函數較豐富,性能相對于ACESS、MySql等數據庫要強一些。然而性能比不上大型數據庫,如SQL2008,ORACLE,DB2等等,不能移植到LINUX中,只能在windows中運行,安全性也不夠高,經常被攻擊它的1433端口sql server作為服務器數據庫,它只返回限于程序提交的查詢語句的對應記錄,所以能用于大型數據處理,及時回饋數據交互的SQL SERVER的數據是實時的??梢允褂盟詭У膬灮鱽韮灮?,然后根據建議去優化。要注意規范化編程。而且要抓住一個原則來寫,就是盡可能縮小查詢出來的結果集,哪怕多次查詢都無所謂,要一步一步把大數據量縮小。很多還需要在時間中優化。SET STATISTICS TIME ON;SQL 語句SET STATISTICS TIME OFF;這個是sqlserver,可以測出執行時間。編寫的時候要時刻想著:縮小結果集、減少連接次數和表數。大數據量不要用update,可以用臨時表作為過渡來實現update操作。另外數據庫屬性有兩個選項,與事務日志的增長有關:Truncate log on checkpoint(此選項用于SQL7.0,SQL 2000中即故障恢復模型選擇為簡單模型)當執行CHECKPOINT 命令時如果事務日志文件超過其大小的70% 則將其內容清除在開發數據庫時將此選項設置為TrueAuto shrink。
當數據庫文件或日志文件定期對數據庫進行檢查的未用空間超過其大小的25%時,系統將會自動縮減文件使其未用空間等于25%,當文件大小沒有超過其建立時的初始大小時不會縮減文件縮減后的文件,也必須大于或等于其初始大小,對事務日志文件的縮減只有在對其作備份時或將Truncate log on checkpoint 選項設為True 時才能進行。注意:一般建立的數據庫默認屬性已設好,但碰到意外情況使數據庫屬性被更改,請用戶清空日志后,檢查數據庫的以上屬性,以防事務日志再次充滿。
SQL Server默認是不允許遠程連接的,如果想要在本地用SSMS連接遠程服務器上的SQLServer數據庫,需要確認使用SQL Server身份驗證方式驗證模式進行登錄。
建立并使用恰當的索引,能極大地提高查詢效率,注意事項包括不要索引常用的小型表;不要把社會保障號碼(SSN)或身份證號碼(ID)選作鍵;使用系統生成的主鍵。
硬件優化是一個必要的過程,隨著數據越來越多,數據庫也應隨之擴大,以便跟上數據處理的效果及速度。良化的數據庫管理硬件工具也是讓其性能優化的一個常規模式。
SQLServer數據庫對用戶進行數據處理和查調非常方便快捷,是目前應用最廣的數據庫應用之一,不僅可以提高工作效率,還能降低成本支出,加強對SQLservel數據庫的性能分板,進一步加強優化策略,為使用者提供更好的服務。
詳細了解的性能,以便于及時作出調整優化策略,才能更好的為使用者服務。
作者單位:江西省體育電子設備研究所