當前位置:首頁 » 編程語言 » sqlserver2008性能優化

sqlserver2008性能優化

發布時間: 2022-11-15 15:03:43

sql server 2008和2000有什麼區別

sql server 2008 功能特色

1、新的FORCESCAN查詢提示


任何DBA在進行查詢優化的時候,都知道scan和seek之間的區別。Scan是指讀取表中每一行數據然後返回查詢;而seek使用表的葉數據來找到能夠回答相同查詢的行。當查詢結果僅涉及到表數據的10-15%時,通常使用seek方式會比較好,當涉及到大量數據時則使用scan,它會讀取整個表然後送到內存中然後返回結果,無需分析索引。


①新的FORCESCAN提示功能就和字面上的意思一樣,可以確保查詢優化器在給定的操作中不使用seek,而強制使用scan。需要提醒的是,FORCESCAN需要謹慎使用,否則會造成查詢性能降低的後果。


②SELECT user_type FROM user_table WITH (FORCESCAN)


上面的語句假定user_type列相對來說並不是獨一無二的,也就是所謂的「低基數」列,這時候使用FORCESCAN就和使用索引沒有太大差別。


③隨著SQL Server查詢優化器變得越來越強大,我在自己的程序中已經很少會用到這種提示功能,但是FORCESCAN還是有它的用武之處。強製表掃描是對系統進行拷問測試的一種方法,FORCESCAN在這方面將會發揮積極的作用。


2、FORCESEEK查詢提示的新功能


①FORCESEEK和FORCESCAN二者是截然相反的,它會強制資料庫使用seek。在之前的版本中也存在這一功能,但是在SQL Server 2008 R2 SP1中,DBA可以使用FORCESEEK來指定需要seek的索引或者列:


②SELECT user_name FROM user_table


③WITH (FORCESEEK(user_table_index(user_name))


④如果你能夠想到的,在user_table上有一個索引叫做user_table_index,它將user_name作為其中的一列。這會強制查詢優化器使用這個索引和列來進行seek。你還可以seek多個列,但是這需要按照它們在索引中的位置順序來指明出來。


⑤一個可能的應用場景:你創建了一個系統,其中生成索引後你想要手動進行詳細的說明,或者是用存儲過程以及內嵌SQL語句來自動生成。


3、新的系統對象


①每當SQL Server有版本更新的時候,都會出現一些新的系統對象,用戶每次都將它們挖掘出來然後記錄到文檔當中。下面就是SQL Server 2008 R2 SP1中一些新的系統對象。


②sys.dm_os_volume_stats:當進行查詢的時候,這個動態管理函數將返回存儲資料庫文件的磁碟信息。比如磁碟上還有多少可用空間,這個卷是否支持壓縮


③sys.dm_os_windows_info:返回SQL Server運行的操作系統信息(哪個版本的Windows),其中包括了修訂級別以及操作系統語言等。


④sys.dm_server_registry:返回現安裝的SQL Server相關注冊信息。


⑤sys.dm_server_services:返回SQL Server正在運行的服務狀態,包括上次啟動時間、服務是否運行在集群實例上等。


4、支持模擬(512e)硬碟


存儲市場中目前正涌現出新的硬碟驅動器,其中之一就是使用所謂的「512e」格式的硬碟,模擬硬碟運用磁碟的4K扇區,但是在界面上模擬一個512位元組的扇區硬碟。在TechTarget之前關於模擬硬碟對Windows Server影響的報道中,作者已經將該硬碟稱為先進格式硬碟,而且它對於提升SQL Server這樣應用性能方面有很大的優勢。因此,微軟在SP1中添加了對模擬硬碟的支持,它可以讓Windows Server 2008 R2運行更好。


5、數據層應用組件架構(DAC Fx)


資料庫架構管理是讓每個DBA頭痛的事情,但是SQL Server在這方面提供了不錯的幫助。數據層應用組件(DAC)就是這樣的一個工具:它讓數據層對象(基本上就是資料庫中所有的東西)寫入和部署變得輕鬆起來。SP1包括了一個新的DAC Fx和DAC升級向導,這兩個工具可以幫助SQL Server現有資料庫架構進行升級,而且還支持微軟新的雲資料庫平台SQL Azure。


6、SharePoint PowerPivot磁碟空間控制


①微軟PowerPivot數據往往會緩存在SharePoint中,但是DBA還是無法對緩存機制有一個比較直接的控制。SQL Server 2008 R2 SP1可以讓DBA控制不活躍資料庫在內存中緩存的時間,並對PowerPivot文件進行磁碟清理。如果你的系統中只有少量的PowerPivot數據,而且更改很少,你希望它能夠長時間緩存在內存中,那麼新的磁碟空間控制功能將會非常有幫助。


②通過sys.sp_db_increased_partitions存儲過程將一個表分成15000個分區。


③sys.sp_db_increased_partitions存儲過程可以使DBA能夠針對一個特定的表設定increased_partitions。在之前的SQL Server版本中,DBA最多能夠分成1000個分區,而新的SP1中最多則可以達到15000個分區。這是非常大的一個改進。

點擊下載:ql server 2008

sql server 2000 功能特色


1、多實例支持能力


sql2000桌面版最多可在單台計算機上同時支持16個資料庫伺服器實例。


2、Osql.exe


osql實用工具是Microsoft所提供的一種用於臨時以交互方式執行Transact-SQL語句或腳本程序的Win32命令行工具。藉助這種實用工具,您將可以在一種類似於命令提示行的工作環境中以互動式方式輸入Transact-SQL語句。相應語句所生成的結果集也將在命令行窗口中加以顯示。


3、復制功能


sql2000桌面版同時支持以發布者及訂閱者身份所進行的合並復制操作,從而使您得以在多個站點(某些情況下可能會覆蓋數以百計的站點)上同時維護相同數據的多份拷貝。此外,sql2000桌面版還支持其它形式的復制操作,但其只能提供范圍有限的功能。例如,MSDE 2000隻能在訂閱者環境中參與事務化復制和快照復制操作。


4、性能


sql2000桌面版是一種可共享的本地化數據引擎。它擁有一種能夠為達到性能優化目的而將最大並行批處理工作負載數量控制在5個以內的可管理並行工作負載控制機制。相關命令與日誌記錄可對實例進行監控,以避免出現並行執行工作負載數量超過5個的情況,在這種情況下,即便是配置良好的系統,也會產生明顯的性能下降。當並行執行的工作負載數量超過5個時,如果再有批處理工作負載被提交上來,並行控制機制將不斷減慢系統運行速度。這些工作負載既不會被取消,也不會自己丟失;他們仍將在一種不斷下降的性能模式中得到處理。如果您的解決方案必須支持5個以上的並行工作負載,那麼,我們強烈建議您移植到SQL Server 2000或SQL Server 2000企業版,以便獲得具備更高伸縮能力的最佳優化性能。


5、最大資料庫規模


sql2000桌面版最多可為每個資料庫提供2 GB存儲空間。這一限制條件是以資料庫而非伺服器為單位的。每台計算機可支持多個sql2000桌面版實例,其中每個實例為資料庫所提供的存儲空間之和不得超過2 GB。


6、數據轉換服務


sql2000桌面版有能力運行數據轉換服務(DTS)軟體包。然而,由於其並未配備相應的DTS設計器,因此,它將無法設計DTS軟體包。


7、遠程管理功能


sql2000桌面版同時支持本地管理與遠程管理方式。然而,由於相關事務可能在不同伺服器之間交替產生,因此,sql2000桌面版將無法在多伺服器運行環境中實現遠程管理。

點擊下載:sql server 2000

Ⅱ Sql Server 2008 必須開啟哪些服務

只需要開啟SQL Server (MSSQLSERVER)。

Sql Server 2008所有服務如下:

SQL Active Directory Helper 服務支持與 Active Directory 的集成

SQL Full-text Filter Daemon Launcher (MSSQLSERVER)用於啟動全文篩選器後台程序進程的服務,該進程將為 SQL Server 全文搜索執行文檔篩選和斷字。禁用此服務將使 SQL Server 的全文搜索功能不可用。

SQL Server (MSSQLSERVER)提供數據的存儲、處理和受控訪問,並提供快速的事務處理。

SQL Server (SQLEXPRESS)提供數據的存儲、處理和受控訪問,並提供快速的事務處理。

SQL Server Browser將 SQL Server 連接信息提供給客戶端計算機。

SQL Server VSS Writer提供用於通過 Windows VSS 基礎結構備份/還原 Microsoft SQL Server 的介面。

SQL Server 代理 (MSSQLSERVER)執行作業、監視 SQL Server、激發警報,以及允許自動執行某些管理任務。

SQL Server 代理 (SQLEXPRESS)執行作業、監視 SQL Server、激發警報,以及允許自動執行某些管理任務。

(2)sqlserver2008性能優化擴展閱讀:

SQL Server 2008在2008年8月6日正式發表,並且同時發布SQL Server 2008 Express版本,研發代號為「Katmai」,作為SQL Server 2005的功能強化版本,其主要的新功能與特色有:

1、以原則為主(Policy-Based)的管理基礎架構。

2、與Windows Server 2008、Windows Vista的Data Collector技術集成的Performance Data Collection。

3、可以經由管理者設置以調整運行資源的資源調節器(Resource Governer)。

4、可預測的查詢性能。

5、數據壓縮能力。

6、DDL(數據定義語言)審核能力。

7、透通式數據加密(Transparent Data Encryption)

8、記錄檔數據流壓縮(Log Stream Compression)

9、ADO.NET Object Services的直接支持,這代表SQL Server 2008可支持LINQ和ADO.NET Entity Framework。

10、本地的DATE和TIME分割的數據類型,並且支持時間位移的DATETIMEOFFSET和更精確的DATETIME2數據類型。

11、FILESTREAM數據類型:將大型二進制數據存到NTFS文件系統中(即不直接存在資料庫中)。

12、稀疏欄位(Sparse Column)的支持,可節省因為NULL值所佔據的存儲空間。

13、空間數據類型集,包含geometry(平面或Euclidean(平面地球)數據)以及geography(橢圓體(圓形地球)數據),分別可存儲平面和立面型的數據,有助於GIS型系統的開發。

14、變更數據收集與捕捉(Change Data Capture)。

15、寬數據表(Wide table),可以容納最高30,000個欄位,但必須要配合Sparse欄位使用。

16、hierarchyid數據類型,可以允許存儲層次結構化的數據。

17、MERGE語句,可根據與來源數據表聯結的結果,在目標數據表上運行插入、更新或刪除作業,其功能與ADO.NET中的DataSet.Merge()方法類似。

18、Report Server應用程序嵌入能力。

19、Reporting Service可支持窗體驗證。

20、預測分析能力(SSAS)。

21、數據表型參數與變數,可以在變數或參數中使用table的類型。

SQL Server 2008比起以往版本存在以下優勢:

(1)保護資料庫查詢

(2)在伺服器的管理操作上花費更少的時間

(3)增加應用程序穩定性

(4)系統執行性能最優化與預測功能

Ⅲ SQL Server 2008 R2 持續佔用內存直到伺服器死機,怎麼解決

sql的性能優化需要調試了,你sql的讀寫頻繁的話還要增加8g內存

Ⅳ 如何進行SQL性能優化

SQL Server資料庫查詢速度慢的原因有很多,常見的有以下幾種:
1、沒有索引或者沒有用到索引(這是查詢慢最常見的問題,是資料庫設計的缺陷)
2、I/O吞吐量小,形成了瓶頸效應。
3、沒有創建計算列導致查詢不優化。
4、內存不足
5、網路速度慢
6、查詢出的數據量過大(可以採用多次查詢,其他的方法降低數據量)
7、鎖或者死鎖(這也是查詢慢最常見的問題,是程序設計的缺陷)
8、sp_lock,sp_who,活動的用戶查看,原因是讀寫競爭資源。
9、返回了不必要的行和列
10、查詢語句不好,沒有優化
●可以通過以下方法來優化查詢 :
1、把數據、日誌、索引放到不同的I/O設備上,增加讀取速度,以前可以將Tempdb應放在RAID0上,SQL2000不在支持。數據量(尺寸)越大,提高I/O越重要。
2、縱向、橫向分割表,減少表的尺寸(sp_spaceuse)
3、升級硬體
4、根據查詢條件,建立索引,優化索引、優化訪問方式,限制結果集的數據量。注意填充因子要適當(最好是使用默認值0)。索引應該盡量小,使用位元組數小的列建索引好(參照索引的創建),不要對有限的幾個值的欄位建單一索引如性別欄位。
5、提高網速。
6、擴大伺服器的內存,Windows 2000和SQL server 2000能支持4-8G的內存。
配置虛擬內存:虛擬內存大小應基於計算機上並發運行的服務進行配置。運行 Microsoft SQL Server? 2000時,可考慮將虛擬內存大小設置為計算機中安裝的物理內存的1.5倍。如果另外安裝了全文檢索功能,並打算運行Microsoft搜索服務以便執行全文索引和查詢,可考慮:將虛擬內存大小配置為至少是計算機中安裝的物理內存的3倍。將SQL Server max server memory伺服器配置選項配置為物理內存的1.5倍(虛擬內存大小設置的一半)。
7、增加伺服器CPU個數;但是必須 明白並行處理串列處理更需要資源例如內存。使用並行還是串列程是MSSQL自動評估選擇的。單個任務分解成多個任務,就可以在處理器上運行。例如耽擱查詢 的排序、連接、掃描和GROUP BY字句同時執行,SQL SERVER根據系統的負載情況決定最優的並行等級,復雜的需要消耗大量的CPU的查詢最適合並行處理。但是更新操作UPDATE,INSERT, DELETE還不能並行處理。
8、如果是使用like進行查詢的話,簡單的使用index是不行的,但是全文索引,耗空間。 like ''a%'' 使用索引 like ''%a'' 不使用索引用 like ''%a%'' 查詢時,查詢耗時和欄位值總長度成正比,所以不能用CHAR類型,而是VARCHAR。對於欄位的值很長的建全文索引。
9、DB Server 和APPLication Server 分離;OLTP和OLAP分離
10、分布式分區視圖可用於實現資料庫伺服器聯合體。
聯合體是一組分開管理的伺服器,但它們相互協作分擔系統的處理負荷。這種通過分區數據形成資料庫伺服器聯合體的機制能夠擴大一組伺服器,以支持大型的多層 Web 站點的處理需要。有關更多信息,參見設計聯合資料庫伺服器。(參照SQL幫助文件''分區視圖'')
a、在實現分區視圖之前,必須先水平分區表
b、 在創建成員表後,在每個成員伺服器上定義一個分布式分區視圖,並且每個視圖具有相同的名稱。這樣,引用分布式分區視圖名的查詢可以在任何一個成員伺服器上 運行。系統操作如同每個成員伺服器上都有一個原始表的復本一樣,但其實每個伺服器上只有一個成員表和一個分布式分區視圖。數據的位置對應用程序是透明的。
11、重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收縮數據和日誌 DBCC SHRINKDB,DBCC SHRINKFILE. 設置自動收縮日誌.對於大的資料庫不要設置資料庫自動增長,它會降低伺服器的性能。
在T-sql的寫法上有很大的講究,下面列出常見的要點:首先,DBMS處理查詢計劃的過程是這樣的:
1、 查詢語句的詞法、語法檢查
2、 將語句提交給DBMS的查詢優化器
3、 優化器做代數優化和存取路徑的優化
4、 由預編譯模塊生成查詢規劃
5、 然後在合適的時間提交給系統處理執行
6、 最後將執行結果返回給用戶。
其次,看一下SQL SERVER的數據存放的結構:一個頁面的大小為8K(8060)位元組,8個頁面為一個盤區,按照B樹存放。

Ⅳ sql server 2008的版本功能

SQL Server 2008出現在微軟數據平台願景上是因為它使得公司可以運行他們最關鍵任務的應用程序,同時降低了管理數據基礎設施和發送觀察和信息給所有用戶的成本。
這個平台有以下特點:
· 可信任的——使得公司可以以很高的安全性、可靠性和可擴展性來運行他們最關鍵任務的應用程序。
· 高效的——使得公司可以降低開發和管理他們的數據基礎設施的時間和成本。
· 智能的——提供了一個全面的平台,可以在你的用戶需要的時候給他發送觀察和信息。 一、可信任的
在今天數據驅動的世界中,公司需要繼續訪問他們的數據。SQL Server 2008為關鍵任務應用程序提供了強大的安全特性、可靠性和可擴展性。
(一)保護你的信息
在過去的SQL Server 2005的基礎之上,SQL Server 2008做了以下方面的增強來擴展它的安全性:
簡單的數據加密
SQL Server 2008可以對整個資料庫、數據文件和日誌文件進行加密,而不需要改動應用程序。進行加密使公司可以滿足遵守規范和及其關注數據隱私的要求。簡單的數據加密的好處包括使用任何范圍或模糊查詢搜索加密的數據、加強數據安全性以防止未授權的用戶訪問、還有數據加密。這些可以在不改變已有的應用程序的情況下進行。
外鍵管理
SQL Server 2008為加密和密鑰管理提供了一個全面的解決方案。為了滿足不斷發展的對數據中心的信息的更強安全性的需求,公司投資給供應商來管理公司內的安全密鑰。SQL Server 2008通過支持第三方密鑰管理和硬體安全模塊(HSM)產品為這個需求提供了很好的支持。
增強了審查
SQL Server 2008使你可以審查你的數據的操作,從而提高了遵從性和安全性。審查不只包括對數據修改的所有信息,還包括關於什麼時候對數據進行讀取的信息。SQL Server 2008具有像伺服器中加強的審查的配置和管理這樣的功能,這使得公司可以滿足各種規范需求。SQL Server 2008還可以定義每一個資料庫的審查規范,所以審查配置可以為每一個資料庫作單獨的制定。為指定對象作審查配置使審查的執行性能更好,配置的靈活性也更高。
(二)確保業務可持續性
有了SQL Server 2008,微軟繼續使公司具有提供簡化了管理並具高可靠性的應用的能力。
改進了資料庫鏡像
SQL Server 2008基於SQL Server 2005,並提供了更可靠的加強了資料庫鏡像的平台。新的特性包括:
· 頁面自動修復。SQL Server 2008通過請求獲得一個從鏡像合作機器上得到的出錯頁面的重新拷貝,使主要的和鏡像的計算機可以透明的修復數據頁面上的823和824錯誤。
· 提高了性能。SQL Server 2008壓縮了輸出的日誌流,以便使資料庫鏡像所要求的網路帶寬達到最小。
· 加強了可支持性
(1) SQL Server 2008包括了新增加的執行計數器,它使得可以更細粒度的對資料庫管理系統(Database Management Syste,DBMS)日誌記錄的不同階段所耗費的時間進行計時。
(2) SQL Server 2008包括動態管理視圖(Dynamic Management View)和對現有的視圖的擴展,以此來顯示鏡像會話的更多信息。
熱添加CPU
為了在線添加內存資源而擴展SQL Server中的已有的支持,熱添加CPU使資料庫可以按需擴展。事實上,CPU資源可以添加到SQL Server 2008所在的硬體平台上而不需要停止應用程序。
(三)最佳的和可預測的系統性能
公司在面對不斷增長的壓力,要提供可預計的響應和對隨著用戶數目的增長而不斷增長的數據量進行管理。SQL Server 2008提供了一個廣泛的功能集合,使你的數據平台上的所有工作負載的執行都是可擴展的和可預測的。
性能數據的採集
性能調整和排除故障對於管理員來說是耗費時間的工作。為了給管理員提供全面的執行洞察力,SQL Server 2008推出了范圍更大的數據採集,一個用於存儲性能數據的新的集中的資料庫,以及新的報表和監控工具。
擴展事件
SQL Server擴展事件是一個用於伺服器系統的一般的事件處理系統。擴展事件基礎設施是一個輕量級的機制,它支持對伺服器運行過程中產生的事件的捕獲、過濾和響應。這個對事件進行響應的能力使用戶可以通過增加前後文關聯數據,例如Transact SQL對所有事件調用堆棧或查詢計劃句柄,以此來快速的診斷運行時問題。事件捕獲可以按幾種不同的類型輸出,包括Windows事件跟蹤(Event Tracing for Windows,ETW)。當擴展事件輸出到ETW時,操作系統和應用程序就可以關聯了,這使得可以作更全面的系統跟蹤。
備份壓縮
保持在線進行基於磁碟的備份是很昂貴而且很耗時的。有了SQL Server 2008備份壓縮,需要的磁碟I/O 減少了,在線備份所需要的存儲空間也減少了,而且備份的速度明顯加快了。
數據壓縮
改進的數據壓縮使數據可以更有效的存儲,並且降低了數據的存儲要求。數據壓縮還為大型的限制輸入/輸出的工作負載例如數據倉庫提供了顯著的性能改進。
資源監控器
SQL Server 2008隨著資源監控器的推出使公司可以提供持續的和可預測的響應給終端用戶。資源監控器使資料庫管理員可以為不同的工作負載定義資源限制和優先權,這使得並發工作負載可以為終端用戶提供穩定的性能。
穩定的計劃
SQL Server 2008通過提供了一個新的制定查詢計劃的功能,從而提供了更好的查詢執行穩定性和可預測性,使公司可以在硬體伺服器更換、伺服器升級和產品部署中提供穩定的查詢計劃。 二、高效的
SQL Server 2008降低了管理系統、.NET架構和Visual Studio® Team System的時間和成本,使得開發人員可以開發強大的下一代資料庫應用程序。
(一)基於政策的管理
作為微軟正在努力降低公司的總成本所作的工作的一部分,SQL Server 2008推出了陳述式管理架構(DMF),它是一個用於SQL Server資料庫引擎的新的基於策略的管理框架。陳述式管理提供了以下優點:
· 遵從系統配置的政策
· 監控和防止通過創建不符合配置的政策來改變系統
· 通過簡化管理工作來減少公司的總成本
· 使用SQL Server 管理套件查找遵從性問題
DMF是一個基於政策的用於管理一個或多個SQL Server 2008實例的系統。要使用DMF,SQL Server政策管理員使用SQL Server 管理套件創建政策,這些政策管理伺服器上的實體,例如SQL Server的實例、資料庫、和其它SQL Server對象。DMF由三個組件組成:政策管理、創建政策的政策管理員,和顯式管理。管理員選擇一個或多個要管理的對象,並顯式檢查這些對象是否遵守指定的政策,或顯式地使這些對象遵守某個政策。
自動管理
政策管理員使用下面的執行模式之一,使政策自動執行:
· 強制——使用DDL觸發器阻止違反政策的操作
· 對改動進行檢查——當一個與某個政策相關的改動發生時,使用事件通知來評估這個政策
· 檢查時間表——使用一個SQL Server Agent 工作定期的評估一個政策
(二)改進了安裝
SQL Server 2008對SQL Server的服務生命周期提供了顯著的改進,它重新設計了安裝、建立和配置架構。這些改進將計算機上的各個安裝與SQL Server軟體的配置分離開來,這使得公司和軟體合作夥伴可以提供推薦的安裝配置。
(三)加速開發過程
SQL Server提供了集成的開發環境和更高級的數據提取,使開發人員可以創建下一代數據應用程序,同時簡化了對數據的訪問。
ADO .NET實體框架
在資料庫開發人員中的一個趨勢是定義高級的業務對象,或實體,然後他們可以將它們匹配到資料庫中的表和欄位,開發人員使用高級實體例如「客戶」或「訂單」來顯示背後的數據。ADO .NET 實體框架使開發人員可以以這樣的實體來設計關系數據。在這一提取級別的設計是非常高效的,並使開發人員可以充分利用實體關系建模。
語言級集成查詢能力
微軟的語言級集成查詢能力(LINQ)使開發人員可以通過使用管理程序語言例如C#或Visual Basic .NET,而不是SQL語句來對數據進行查詢。LINQ 使可以用.NET 框架語言編寫的無縫和強大的面向集合的查詢運行於ADO. NET(LINQ到SQL), ADO .NET 數據集(LINQ到數據集),ADO .NET 實體框架(LINQ到實體),和到實體數據服務匹配供應商。SQL Server 2008提供了一個新的LINQ到SQL供應商,使得開發人員可以直接將LINQ用於SQL Server 2008的表和欄位。
CLR集成和ADO .NET對象服務
ADO .NET 的對象服務層使得可以進行具體化檢索、改變跟蹤、和實現作為公共語言運行時(CLR)的數據的可持續性。開發人員使用ADO .NET 實體框架可以通過使用由ADO .NET 管理的CLR對象對資料庫進行編程。SQL Server 2008提供了提高性能和簡化開發過程的更有效的和最佳的支持。
Service Broker可擴展性
SQL Server 2008繼續加強了Service Broker 的能力。
· 會話優先權——使你可以配置優先權,使得最重要的數據會第一個被發送和進行處理。
· 診斷工具——診斷工具提高了你開發、配置和管理使用了Service Broker的解決方案的能力,例如在應用程序部署之前診斷分支丟失情況或配置不正確的安全問題。
Transact-SQL的改進
SQL Server 2008通過幾個關鍵的改進增強了Transact-SQL編程人員的開發體驗。
· Table Value Parameters – 在許多客戶的場景中,要傳遞一個表結構的值(行)的集合到伺服器上的一個存儲過程或函數中。這些值可能直接用於插入表或更新表,或者是用於更復雜的數據操作。值為表的參數為定義一個表類型和使應用程序創建、賦值和傳遞表結構的參數到存儲過程和函數中提供了更簡單的方式。
· 對象相關性——對象相關性的改進通過新推出的種類查看和動態管理功能使能夠可靠的找出對象間的相關性。相關性信息總是關於綁定架構和未綁定架構的對象的最新的信息。這個相關性會跟蹤存儲過程、表、視圖、函數、觸發器、用戶定義的類型、XML schema集合和其他對象。
· 日期/時間數據類型——SQL Server 2008推出了新的日期和時間數據類型:
(1) DATE——一個只包含日期的類型,只使用3個位元組來存儲一個日期
(2) TIME——一個只包含時間的類型,只使用3到5個位元組來存儲精確到100納秒時間
(3) DATETIMEOFFSET – 一個可辨別時區的日期/時間類型
(4) DATETIME2 ——一個具有比現有的DATETIME類型更精確的秒和年范圍的日期/時間類型
新的數據類型使應用程序可以有單獨的日期和時間類型,同時為用戶定義的時間值的精度提供較大的數據范圍。
(四)偶爾連接系統
有了移動設備和活動式工作人員,偶爾連接成為了一種工作方式。SQL Server 2008推出了一個統一的同步平台,使得在應用程序、數據存儲和數據類型之間達到一致性同步。在與Visual Studio 的合作下,SQL Server 2008使得可以通過ADO .NET中提供的新的同步服務和Visual Studio中的離線設計器快速的創建偶爾連接系統。SQL Server 2008提供了支持,使得可以改變跟蹤和使客戶可以以最小的執行消耗進行功能強大的執行,以此來開發基於緩存的、基於同步的和基於通知的應用程序。
(五)不只是關系數據
應用程序正在結合使用越來越多的數據類型,而不僅僅是過去資料庫所支持的那些。SQL Server 2008基於過去對非關系數據的強大支持,提供了新的數據類型使得開發人員和管理員可以有效的存儲和管理非結構化數據,例如文檔和圖片。還增加了對管理高級地理數據的支持。除了新的數據類型,SQL Server 2008還提供了一系列對不同數據類型的服務,同時為數據平台提供了可靠性、安全性和易管理性。這篇白皮書的下一章節將介紹非關系數據存儲的一些優點。
HIERARCHY ID
SQL Server 2008使資料庫應用程序以比以前更有效的方式建立樹結構。HierarchyId是一個新的系統類型,它可以存儲一個層次樹中顯示的結點的值。這個新的類型提供了一個靈活的編程模型。它作為一個CLR用戶定義的類型(UDT)來執行,它提供了幾種用於創建和操作層次結點的有效的及有用的內置方法。
FILESTREAM數據
新的SQL Server 2008 FILESTREAM 數據類型使大型的二進制數據,像文檔和圖片等可以直接存儲到一個NTFS文件系統中;文檔和圖片仍然是資料庫的主要組成部分,並維護事務的一致性。
FILESTREAM 使傳統的由資料庫管理的大型二進制數據可以作為單獨的文件存儲在資料庫之外,它們可以通過使用一個NTFS流API進行訪問。使用NTFS流API使普通文件操作可以有效的執行,同時提供所有豐富的資料庫服務,包括安全和備份。
集成的全文檢索
集成的全文檢索使得在全文檢索和關系數據之間可以無縫的轉換,同時使全文索引可以對大型文本欄位進行高速的文本檢索。
稀疏列
這個功能使NULL數據不佔物理空間,從而提供了一個非常有效的管理資料庫中的空數據的方法。例如,稀疏列使得一般包含極多要存儲在一個SQL Server 2008資料庫中的空值的對象模型不會佔用很大的空間。稀疏列還允許管理員創建1024列以上的表。
大型的用戶定義的類型
SQL Server 2008刪除了對用戶定義的類型的8,000位元組的限制,使用戶可以顯著的擴大他們的UDT的規模。
地理信息
SQL Server 2008為在基於空間的應用程序中消耗、擴展和使用位置信息提供了廣泛的空間支持。
· 地理數據類型
這個功能使你可以存儲符合行業空間標準例如開放地理空間聯盟(Open Geospatial Consortium,OGC)的平面的空間數據。這使得開發人員可以通過存儲與設計的平面表面和自然的平面數據例如內部空間等相關聯的多邊形、點和線來實現「平面地球」解決方案。
· 幾何數據類型
這個功能使你可以存儲地理空間數據並對其執行操作。使用緯度和經度的組合來定義地球表面的區域,並結合了地理數據和行業標准橢圓體(例如用於全球GPS解決方案的WGS84)。 三、智能的
商業智能(BI)繼續作為大多數公司投資的關鍵領域和對於公司所有層面的用戶來說的一個無價的信息源。SQL Server 2008提供了一個全面的平台,用於當用戶需要時你可以為其提供智能化。
(一)集成任何數據
公司繼續投資於商業智能和數據倉庫解決方案,以便從他們的數據中獲取商業價值。SQL Server 2008提供了一個全面的和可擴展的數據倉庫平台,它可以用一個單獨的分析存儲進行強大的分析,以滿足成千上萬的用戶在幾兆位元組的數據中的需求。下面是SQL Server 2008中在數據倉庫方面的一些優點。
數據壓縮
數據倉庫中的數據容量隨著操作系統數目的快速增加而在持續增長。內嵌在SQL Server 2008中的數據壓縮使得公司可以更有效的存儲數據,同時還提高了性能,因為降低了I/O 要求。
備份壓縮
保持一直在線做基於磁碟的備份是花費很昂貴的,並且很耗時。有了SQL Server 2008的備份壓縮,保持在線備份所需的存儲降低了,並且備份速度明顯變快了,因為所需要的磁碟I/O 減少了。
分區表並行
分割使公司能夠更有效的管理大型的、不斷增長的數據表,只要簡單的將它們分割為易管理的數據塊。SQL Server 2008是在SQL Server 2005中的分割的優勢之上建立的,它改進了對大型的分區表的操作性能。
星型聯接查詢優化器
SQL Server 2008為普通的數據倉庫場景提供了改進的查詢性能。星型聯接查詢優化器通過辨別數據倉庫連接模式降低了查詢響應時間。
資源監控器
SQL Server 2008隨著資源監控器的推出,使公司可以給終端用戶提供一致的和可預測的響應。資源監控器使公司可以為不同的工作負載定義資源限制和優先權,這使得並發工作負載可以提供穩定的性能。
分組設置
分組設置(GROUPING SETS)是對 GROUP BY 條件語句的擴展,它使得用戶可以在同一個查詢中定義多個分組。分組設置生成一個單獨的結果集,這個結果集相當於對不同分組的行進行了UNION ALL 的操作,這使得聚合查詢和報表更加簡單和快速。
捕獲變更數據
有了捕獲變更數據,變更會被捕獲並被放在變更表中。它捕獲變更的完整內容,維護交叉表的一致性,甚至是對交叉的schema變更也起作用。這使得公司可以將最新的信息集成到數據倉庫中。
MERGESQL語句
有了MERGE SQL 語句,開發人員可以更有效地處理數據倉庫的場景,例如檢查一行數據是否存在然後執行插入或更新。
可擴展的集成服務
集成服務的可擴展性方面的兩個關鍵優勢是:
· SQL Server集成服務 (SQL Server Integration Services,SSIS)管道改進
數據集成包現在可以更有效地擴展、使用有效的資源和管理最大的企業級的工作負載。這個新的設計將運行時間的可擴展性提高到多個處理器中。
· SSIS持久查找
執行查找是最常見的抽取、轉換和載入(ETL)操作。這在數據倉庫中尤為普遍,當實際記錄必須使用查找來轉換業務鍵到它們相應的替代中去時。SSIS 增強了查找的性能以支持大型表。
(二)發送相應的報表
SQL Server 2008提供了一個可擴展的商業智能基礎設施,使得IT人員可以在整個公司內使用商業智能來管理報表以及任何規模和復雜度的分析。SQL Server 2008使得公司可以有效的以用戶想要的格式和他們的地址發送相應的、個人的報表給成千上萬的用戶。通過提供了交互發送用戶需要的企業報表,獲得報表服務的用戶數目大大增加了。這使得用戶可以獲得對他們各自領域的洞察的相關信息的及時訪問,使得他們可以作出更好、更快、更符合的決策。SQL Server 2008使得所有的用戶可以通過下面的報表改進之處來製作、管理和使用報表:
企業報表引擎
有了簡化的部署和配置,可以在企業內部更簡單的發送報表。這使得用戶能夠輕松的創建和共享所有規模和復雜度的報表。
新的報表設計器
改進的報表設計器可以創建廣泛的報表,使公司可以滿足所有的報表需求。獨特的顯示能力使報表可以被設計為任何結構,同時增強的可視化進一步豐富了用戶的體驗。
此外,報表服務2008使商業用戶可以在一個可以使用Microsoft Office的環境中編輯或更新現有的報表,不論這個報表最初是在哪裡設計的,從而使公司能夠從現有的報表中獲得更多的價值。
強大的可視化
SQL Server 2008擴展了報表中可用的可視化組件。可視化工具例如地圖、量表和圖表等使得報表更加友好和易懂。
Microsoft Office渲染
SQL Server 2008提供了新的Microsoft Office渲染,使得用戶可以從Word里直接訪問報表。此外,現有的Excel® 渲染器被極大的增強了,它被用以支持像嵌套數據區域、子報表和合並單元格等功能。這使得用戶可以維護顯示保真度和改進Microsoft Office應用中所創建的報表的全面可用性。
Microsoft SharePoint® 集成
SQL Server 2008報表服務將Microsoft Office SharePoint Server 2007和Microsoft SharePoint Services 深度集成,提供了企業報表和其它商業洞察的集中發送和管理。這使得用戶可以訪問包含了與他們直接在商業門戶中所做的決策相關的結構化和非結構化信息的報表。
(三)使用戶獲得全面的洞察力
及時訪問准確信息,使用戶快速對問題、甚至是非常復雜的問題作出反應,這是在線分析處理的前提(Online Analytical Processing,OLAP)。SQL Server 2008基於SQL Server 2005強大的OLAP能力,為所有用戶提供了更快的查詢速度。這個性能的提升使得公司可以執行具有許多維度和聚合的非常復雜的分析。這個執行速度與Microsoft Office的深度集成相結合,使SQL Server 2008可以讓所有用戶獲得全面的洞察力。SQL Server分析服務具有下面的分析優勢:
設計為可擴展的
SQL Server 2008加強了分析能力和提供了更復雜的計算和聚合,使得能進行的分析更寬廣。新的立方體設計工具幫助用戶將分析基礎設施的開發工作流線化,使他們可以為優化性能建立解決方案。這個設計里內嵌了Best Practice Design Alerts,使得開發人員可以在設計時集成實時警告,這優化了設計。Dimension Designer使得可以簡單的查看和編輯屬性關系,還可以提供多個內置的對理想尺度設計的支持的驗證,而在數據挖掘結構中增強的靈活性使得可以創建多個不同的模型,而不僅僅是過濾數據。
塊計算
塊計算提供了一個在處理性能方面的顯著提高,使得用戶可以增加他們的層級深度和計算的復雜度。
回寫到MOLAP
SQL Server 2008分析服務中的新的基於MOLAP 的回寫功能使得不再需要查詢ROLAP 分區。這給用戶提供了更強的用於分析應用程序中的回寫設定,而不需要以OLAP 性能為代價。
資源監控器
在SQL Server 2008中一個新的資源監控器提供了對資源利用情況的詳細觀察。有了這個資源監控器,資料庫管理員可以快速並輕松的監控和控制分析工作負載,包括識別哪個用戶在運行什麼查詢和他們會運行多久,這使得管理員可以更好的優化伺服器的使用。
預測分析
一個改進的時間序列演算法擴大了預測能力。這個查詢數據挖掘結構的能力使得報表可以很容易的包含從挖掘模型的外部得來的屬性。新的交叉驗證特性對數據進行多處對比,發送給你可靠的結果。這些數據挖掘的改進之處一起為更好的洞察和更豐富的信息提供了機會。

Ⅵ SQL Server佔用內存過高,什麼原因導致的,用什麼方法可以解決

SQL Server運行越久,佔用內存會越來越大。因為sql server本身內存回收機製做的不好,這是微軟系列的伺服器&資料庫問題的通病。

解決SQL Server佔用內存過高的方法:

1.定期重啟SQL Server 2008 R2資料庫服務即可。

拓展資料

SQL Server 是Microsoft 公司推出的關系型資料庫管理系統。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的伺服器等多種平台使用。

Microsoft SQL Server 是一個全面的資料庫平台,使用集成的商業智能 (BI)工具提供了企業級的數據管理。Microsoft SQL Server 資料庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用於業務的高可用和高性能的數據應用程序。

網路Microsoft SQL Server

Ⅶ Sql server 安全,性能優化的15條方案

1.1 基本概念 與資料庫技術密切相關的基本概念包括:數據、資料庫、資料庫管理系統和資料庫系統四大概念。1. 數據(Data) 數據是對客觀事物的一種描述,是由能被計算機識別與處理的數值、字元等符號構成的集合,即數據是指描述事物的符號記錄。 廣義地說,數據是一種物理符號的序列,用於記錄事物的情況,是對客觀事物及其屬性進行的一種抽象化及符號化的描述。數據的概念應包括數據的內容和形式兩個方面。數據的內容是指所描述的客觀事物的具體特性,也就是通常所說的數據的「值」;數據的形式則是指數據內容所存儲的具體形式,即數據的「類型」。故此,數據可以用數據類型和值來表示。2. 資料庫(Data Base,DB) 資料庫是指長期存儲在計算機內部、有組織的、可共享的數據集合,即在計算機系統中按一定的數據模型組織、存儲和使用的相關聯的數據集合成為資料庫。 資料庫中的數據按照一定的數據模型組織、描述和存儲,具有較小的冗餘度、較高的數據獨立性、易擴展性、集中性和共享性,以文件的形式存儲在存儲介質上的。資料庫中的數據由資料庫管理系統進行統一管理和控制,用戶對資料庫進行的各種數據操作都是通過資料庫管理系統實現。3. 資料庫管理系統(Data Base Management System,DBMS) 資料庫管理系統是資料庫系統的核心,是為資料庫的建立、使用和維護而配置的軟體,是位於操作系統與用戶之間的一層數據管理軟體。主要功能是對資料庫進行定義、操作、控制和管理。1) 數據定義 數據的定義包括:定義構成資料庫結構的外模式、模式和內模式,定義各個外模式和模式之間的映射,定義模式與內模式之間的映射,定義有關的約束條件。2) 數據處理對數據的處理操作主要包括對資料庫數據的檢索、插入、修改和刪除等基本操作。3) 安全管理 對資料庫的安全管理主要體現在:對資料庫進行並發控制、安全性檢查、完整性約束條件的檢查和執行、資料庫的內部維護(如索引、數據字典的自動維護)等。並且能夠管理和監督用戶的許可權,防止擁護有任何破壞或者惡意的企圖。4) 數據的組織、存儲和管理 負責分類地組織、存儲和管理資料庫數據,確定以何種文件結構和存取方式物理地組織數據,如何實現數據之間的聯系,以便提高存儲空間利用以及提高隨機查找、順序查找、增加、刪除和查改等操作的時間效率。5) 建立和維護資料庫 建立資料庫包括資料庫數據的初始化與數據轉換等。維護資料庫包括資料庫的轉儲與恢復、資料庫的重組織與重構造、性能的監視與分析等。6) 數據通信介面提供與其他軟體系統進行通信的功能。4. 資料庫系統(Data Base System,DBS) 資料庫系統指在計算機系統中引入資料庫後的系統構成,一般有資料庫、資料庫管理系統、應用系統、資料庫管理員和用戶構成。1.2 資料庫系統的特點 資料庫系統的點主要有:數據的結構化、高共享性、低冗餘度、易擴充、較高的獨立性(物理數據獨立、邏輯數據獨立)以及數據由DBMS統一管理和控制(數據的安全性Security保護、數據的完整性Integrity保護、並發Concurrency控制、資料庫恢復Recovery)等。第二章 資料庫性能優化 資料庫作為一種獨立的、有組織、的可共享的數據集合,數據的查詢訪問是數據操作中頻度最高的操作。當數據量和訪問頻率達到一定程度的時候,系統的響應速度就至關重要了,這時候就需要對資料庫數據存儲的結構和方式進行優化,使其滿足系統需要的訪問響應速度。2.1 性能影響因素 常見的影響數據訪問速度的因素,有以下幾種:1. 沒有索引或者沒有用到索引 資料庫索引就像書籍中目錄一樣,使用戶在訪問資料庫數據時,不必遍歷所有數據就可以找到需要的數據。創建索引後,可以保證每行數據的唯一性,極大地提高數據檢索效率,這是一中犧牲空間換取性能的方法。沒有索引或者沒有用到索引是數據訪問速度慢最常見的因素,也是程序設計的一個缺陷所在。2. I/O吞吐量小,形成了瓶頸效應 I/O吞吐量是影響數據訪問速度的客觀因素(硬體因素)。在一定的硬體環境下,利用優化的部署方案可適當提高I/O吞吐量。3. 沒有創建計算列導致查詢不優化 計算列是一個比較特殊的列,不填寫任何設計類型,用戶不可以改變該列的值。計算列的值是通過一定的函數公式等以另一個或多個列的值為輸入值計算出的結果。如果沒相應的計算列,在一些數據查詢的時候需要對已有數據進行計算,從而浪費一部分性能。4. 內存不足 對資料庫數據的查詢訪問毫無疑問會佔用大量的內存空間,當內存不足的情況下,數據的訪問速度會受到明顯的影響甚至訪問出現超時情況,是影響數據訪問速度的客觀因素。5. 網路速度慢 網路速度慢是影響數據訪問速度的客觀因素。可通過提高網路訪問的位寬來解決。6. 查詢出的數據量過大 當查詢出的數據量過大時,內存的佔用、系統時間的佔用等都影響數據訪問的速度。可以採用多次查詢、定位查詢、和查詢數據量控制來解決。7. 鎖或者死鎖 鎖或者死鎖在資料庫數據訪問時會造成訪問者等待時間過程或者永久無法獲取到資源。這是查詢慢最常見的因素之一,是程序設計的缺陷,要盡量避免。8. 返回不必要的行和列 在一般的數據查詢中,都盡可能多的獲取數據信息,這樣造成了不必要的數據遍歷,大大的增加了數據訪問的響應的時間。所以在一般的查詢中,盡量查詢少的行和列,將數據遍歷時間降到最低以滿足數據輸出需求。9. 查詢語句不夠優化 在數據查詢訪問過程中,使用最頻繁的是使用自定義的查詢語句進行數據輸出的。所以編寫優化的查詢語句能夠很大程度上提高數據查詢訪問的速度。2.2 性能優化 資料庫性能優化主要是提高數據訪問的速度,即提高資料庫響應速度的性能指標。性能優化主要分為主觀因素和客觀因素兩部分的優化。這里主要針對影響性能的客觀因素進行優化。2.2.1 主觀因素優化 主觀因素主要是指伺服器的硬體環境。主要優化有以下幾個方面:1、 把數據、日誌、索引放到不同的I/O設備上,增加讀取速度,數據量越大,提高I/O吞吐量越重要;2、 縱向、橫向分割表,減少表的尺寸(sp_spaceuse);3、 升級硬體;4、 提高網路訪問速度;5、 擴大伺服器的內存;配置虛擬內存:虛擬內存大小應基於計算機上並發運行的服務進行配置,一般設置為物理內存的1.5倍;如果安裝了全文檢索功能,並打算運行Microsoft搜索服務以便執行全文索引和查詢,可考慮將虛擬內存大小設置為至少計算機中物理內存的3倍;6、 增加伺服器CPU個數;其中並行處理比串列處理更需要資源。SQL SERVER根據系統負載情況決定最優的並行等級,復雜的需要消耗大量的CPU的查詢適合並行處理。不過更新操作UPDATE、INSERT、DELETE不能進行並行處理。 2.2.2 客觀因素優化 客觀因素主要指的是由於設計和開發中存在的缺陷和漏洞;主要優化有以下幾個方面:1. 優化索引(1) 根據查詢條件建立優化的索引、優化訪問方式,限制結果集的數據量。注意填充因子要適當(最好是使用默認值0)。索引應該盡量小,使用位元組數小的列建里索引(參照索引的創建),不要對有限的幾個值的欄位建立單一索引(如性別欄位)。(2) 如果使用LIKE進行查詢的話,簡單的使用INDEX是不行的,全文索引又太耗費空間。LIKE 『N%』使用索引,LIKE 『%N』不使用索引。用LIKE『%N%』查詢時,查詢耗時和欄位值總長度成正比,所以不能用CHAR類型而採用VARCHAR。對於欄位的值很長的欄位建立全文索引。(3) 重建索引DBCC REINDEX,DBCC INDEXDEFRAG,收縮數據和日誌DBCC SHRINKDB,DBCC SHRINKFILE。設置自動收縮日誌,對與大的資料庫不要設置資料庫自動增長,它會降低伺服器的性能。2. 資料庫部署優化(1) DB SERVER和APPLICATION SERVER分離,OLTP和OLAP分離;(2) 使用分區視圖。分布式分區視圖可用於實現資料庫伺服器聯合體,聯合體是一組分開管理的伺服器,他們互相協作分擔系統的處理負荷。A、在實現分區視圖之前,必須先水平分區表。B、在創建成員表後,在每個伺服器上定義一個分布式分區視圖,並且每個視圖具有相同的名稱。這樣引用分布式分區視圖名的查詢可以在任何一個成員伺服器上運行。系統操作如同每個成員伺服器都有一個原始表的復本一樣,不過每個伺服器上其實只有一個成員表和一個分布式分區視圖。數據的位置對應用程序是透明的。3. 查詢語句優化 T-SQL的寫法上有很大的講究,DBMS處理查詢計劃的過程是:a、查詢語句的詞法、語法檢查;b、將語句提交給DBMS的查詢優化器;c、優化器做代數優化和存取路徑的優化;d、由預編譯模塊生成查詢規劃;e、在合適的時間提交給系統處理執行;f、將執行結果返回給用戶。(1) COMMIT和ROLLBACK的區別:ROLLBACK回滾所有的事務;COMMIT提交當前的事務。在動態語句中寫事務,請將事務寫在外面,如:BEGIN TRAN EXEC(@SQL) COMMIT TRANS或者將動態SQL寫成函數或者存儲過程。(2) 在大數據兩的查詢輸出SELECT語句中盡量不要使用自定義函數,調用自定義函數的函數時系統調用是一個迭代過程,很影響查詢輸出性能的。在查詢欄位時盡可能使用小欄位兩輸出,並在WHERE子句或者使用SELECT TOP 10/1 PERCENT來限制返回的記錄數,使用SET ROWCOUNT來限制操作的記錄數,避免整表掃描。返回不必要的數據,不但浪費了伺服器的I/O資源,加重了網路的負擔,如果表很大的話,在表掃描期間將表鎖住,禁止其他的聯接訪問,後過很嚴重的。(3) SQL的注釋申明對執行查詢輸出沒有任何影響。(4) 使用計算列對數據進行簡單計算,盡量避免在查詢語句中對數據進行運算。(5) 盡可能不使用游標,它會佔用大量的資源。如果需要ROW-BY-ROW地執行,盡量採用非游標技術,如:客戶端循環、臨時表、TABLE變數、子查詢、CASE語句等等。(6) 使用PROFILER來跟蹤查詢,得到查詢所需的時間,找出SQL的問題所在,用索引優化器優化索引。(7) 注意UNION和UNION ALL的區別。在沒有必要的時候不要用DISINCT,它同UNION一樣會降低查詢速度,重復的記錄在查詢里是沒有問題的。(8) 用sp_configure 『query governor cost limit』或者 SET QUERY_COVERNOR_COST_LIMIT來限制查詢消耗的資源。當評估查詢消耗的 資源超出限制時,伺服器自動取消查詢,在查詢之前就扼殺掉。SET LOCKTIME 設置鎖的時間。(9) 不要在WHERE子句中列名加函數,如CONVERT,SUBSTRING等,如果必須用函數的時候,創建計算列在創建索引來替代。NOT IN會多次掃描表,使用EXISTS、NOT EXISTS、IN、LEFT OUTER JOIN來替代,其中EXISTS比IN更快,最慢的NOT操作。(10) 使用QUERY ANALYZER,查看SQL語句的查詢計劃和評估分析是否是優化的SQL。一般20%的代碼佔用了80%的資源,優化的重點就是這些慢的地方。(11) 如果使用了IN或者OR等時發現查詢沒有走索引,使用顯式申明指定索引,如:Select * From FA01(INDEX=IX_SEX) Where AA0107 IN(『01』,『02』)。(12) 在需要對已有數據進行比較復雜計算才能獲得查詢的結果數據時,將需要查詢的結果預先計算好放在表中,查詢的時候在SELECT。(13) 資料庫有一個原則是代碼離數據越近越好,所有有限選擇DEFAULT,依次為RULES,CONSTRAINT,PROCEDURE來編寫程序的質量高,速度快。如果要插入大的二進制到IMAGE列,使用存儲過程,千萬不要用內嵌INSERT直接插入。因為這樣應用程序首先將二進制轉換成字元串,伺服器收到字元後又將他轉換成二進制。存儲過程直接傳入二進制參數即可,處理速度明顯改善,如:CREATE PROCEDURE image_insert @image varbinary as Insert into table(fImage) values(@image)。(14) Between在某些時候比IN速度更快,更快地根據索引找到范圍。由於IN會比較多次,所以有時會慢些。(15) 盡量不要建沒有作用的事務例如產生報表時,浪費資源,只有在必須使用事務時才建立合適的事務。(16) 用OR的字句可以分解成多個查詢,並通過UNION連接多個查詢。速度取決與是否使用索引。如果查詢需要用聯合索引,用UNION ALL執行的效率更高些。(17) 盡量少用視圖,視圖的效率低。對視圖操作比直接對表操作慢,可以用SRORED PROCEDURE來代替。特別是不要用視圖嵌套,嵌套視圖增加了尋找原始資料的難度。視圖是存放在伺服器上的被優化好了的已經產生查詢規劃的SQL。對單表數據檢索時,不要使用指向多表的視圖,否則增加了不必要的系統開銷,查詢也會受到干擾。沒有必要時不要用DISTINCT和ORDER BY,這些動作可以改在客戶端執行,增加了額外的開銷,這同UNION和UNION ALL原理相同。(18) 當使用SELECT INTO和CREATE TABLE時,會鎖住系統表(SYSOBJECTS,SYSINDEXES等),從而阻塞其他的連接的存取。所以千萬不要在事務內部使用。如果經常要用到臨時表時請使用實表或者臨時表變數。盡量少用臨時表,用結果集和TABLE類型的變數來代替。(19) 在使用GROUP BY HAVING子句時,在使用前剔除多餘的行,盡量避免使用HAVING子句剔除行工作。剔除行最優的執行順序是:SELECT的WHERE子句選擇所有合適的行,GROUP

Ⅷ 如何優化sql server 伺服器性能

你可以通過profiler和性能工具,跟蹤一段時間,然後分析一個瓶頸是什麼,再對瓶頸進行處理。
一般來說,增加足夠大的內存能讓性能快速提高。
使用更快的硬碟。
把資料庫分離業務,比如A業務訪問A資料庫,B業務訪問B資料庫。

Ⅸ 怎麼優化sql server寫入性能

怎麼優化sql server寫入性能
SQL Server資料庫查詢速度慢的原因有很多,常見的有以下幾種:
1、沒有索引或者沒有用到索引(這是查詢慢最常見的問題,是資料庫設計的缺陷)
2、I/O吞吐量小,形成了瓶頸效應。
3、沒有創建計算列導致查詢不優化。
4、內存不足
5、網路速度慢
6、查詢出的數據量過大(可以採用多次查詢,其他的方法降低數據量)
7、鎖或者死鎖(這也是查詢慢最常見的問題,是程序設計的缺陷)
8、sp_lock,sp_who,活動的用戶查看,原因是讀寫競爭資源。
9、返回了不必要的行和列
10、查詢語句不好,沒有優化

熱點內容
手機設置密碼忘記了怎麼解開 發布:2025-01-13 07:28:29 瀏覽:19
存儲卡交流 發布:2025-01-13 07:16:06 瀏覽:982
php字元串浮點數 發布:2025-01-13 07:15:28 瀏覽:997
python排序cmp 發布:2025-01-13 07:09:04 瀏覽:71
雲腳本精靈 發布:2025-01-13 07:03:27 瀏覽:617
高維訪問 發布:2025-01-13 07:03:23 瀏覽:974
保衛蘿卜有腳本嗎 發布:2025-01-13 06:30:29 瀏覽:741
天貓上傳 發布:2025-01-13 06:06:35 瀏覽:156
php處理並發 發布:2025-01-13 06:03:44 瀏覽:283
安卓傳文件的軟體哪個最好 發布:2025-01-13 06:03:07 瀏覽:886