sqlserver數(shù)據(jù)庫規(guī)模膨脹太大怎么優(yōu)化
1. 簡介
隨著SQLServer數(shù)據(jù)庫中數(shù)據(jù)量的增長和應(yīng)用系統(tǒng)使用時間的延長,其數(shù)據(jù)庫規(guī)模也會不斷膨脹。這種情況下,應(yīng)該如何處理呢?下面就為大家介紹一些常見的處理方式。
2. 增加內(nèi)存
2.1 增加物理內(nèi)存
增加SQLServer數(shù)據(jù)庫服務(wù)器的物理內(nèi)存可以有效地提高數(shù)據(jù)庫服務(wù)器的性能。因為,將數(shù)據(jù)庫所需的數(shù)據(jù)和索引都緩存在內(nèi)存中,可以減少磁盤I/O操作的次數(shù),從而提高速度,緩解數(shù)據(jù)庫規(guī)模膨脹的問題。
具體實現(xiàn)方法如下:
ALTER SERVER CONFIGURATION SET MEMORY=8192MB;
說明:
“ALTER SERVER CONFIGURATION SET MEMORY=8192MB”表示增加物理內(nèi)存到8GB,具體根據(jù)服務(wù)器實際情況而定。
2.2 增加虛擬內(nèi)存
增加SQLServer數(shù)據(jù)庫服務(wù)器的虛擬內(nèi)存也可以提高性能。因為,當內(nèi)存不足時,SQLServer將使用硬盤上的虛擬內(nèi)存來臨時存儲數(shù)據(jù)和索引,這雖然會導(dǎo)致訪問速度變慢,但也可以減少磁盤I/O操作的次數(shù),從而提高速度,緩解數(shù)據(jù)庫規(guī)模膨脹的問題。
具體實現(xiàn)方法如下:
ALTER SERVER CONFIGURATION SET C:\\PAGEFILE.SYS;
說明:
“ALTER SERVER CONFIGURATION SET C:\\PAGEFILE.SYS”表示增加虛擬內(nèi)存到C盤根目錄下的PAGEFILE.SYS文件中,具體根據(jù)服務(wù)器實際情況而定。
3. 數(shù)據(jù)壓縮
3.1 壓縮表格
在SQLServer數(shù)據(jù)庫參數(shù)設(shè)置中,可以開啟數(shù)據(jù)壓縮功能以減少磁盤使用量。對于一些已經(jīng)存在多年的歷史數(shù)據(jù),可以考慮對其進行數(shù)據(jù)壓縮,以緩解數(shù)據(jù)庫規(guī)模膨脹的問題。
具體實現(xiàn)方法如下:
SELECT name, type_desc, total_pages, used_pages FROM sys.allocation_units WHERE type IN (1,3) ORDER BY total_pages DESC
說明:
“SELECT name, type_desc, total_pages, used_pages FROM sys.allocation_units WHERE type IN (1,3) ORDER BY total_pages DESC”表示按照總頁數(shù)從大到小排序輸出已經(jīng)壓縮的表格信息。
3.2 壓縮數(shù)據(jù)庫
對于整個數(shù)據(jù)庫的數(shù)據(jù)壓縮,可以使用SQLServer數(shù)據(jù)庫自帶的壓縮方式將數(shù)據(jù)庫文件中的部分數(shù)據(jù)壓縮起來。這樣可以節(jié)省磁盤空間,并可以緩解數(shù)據(jù)庫規(guī)模膨脹的問題。
具體實現(xiàn)方法如下:
USE [master] GO ALTER DATABASE [AdventureWorks] SET COMPATIBILITY_LEVEL = 110; GO ALTER DATABASE [AdventureWorks] SET PAGE_VERIFY CHECKSUM; GO USE [AdventureWorks] GO ALTER INDEX ALL ON [Person].[Address] REBUILD WITH (DATA_COMPRESSION = PAGE); GO
說明:
“ALTER DATABASE [AdventureWorks] SET COMPATIBILITY_LEVEL = 110;”表示將AdventureWorks數(shù)據(jù)庫的兼容性級別設(shè)置為SQL Server 2012,具體根據(jù)數(shù)據(jù)庫實際情況而定;
“ALTER DATABASE [AdventureWorks] SET PAGE_VERIFY CHECKSUM;”表示啟用SQL Server提供的頁面校驗檢查;
“ALTER INDEX ALL ON [Person].[Address] REBUILD WITH (DATA_COMPRESSION = PAGE);”表示對表格Person.Address中的所有索引執(zhí)行重建操作,并采用頁壓縮方式,可以將關(guān)鍵數(shù)據(jù)壓縮,從而減少磁盤空間占用。
4. 數(shù)據(jù)庫分區(qū)
4.1 橫向分區(qū)
SQLServer支持分割已有表格的數(shù)據(jù)為多個物理表格的技術(shù),一般稱為數(shù)據(jù)橫向拆分。當數(shù)據(jù)庫規(guī)模膨脹到一定程度后,可以采用橫向分區(qū)的方式來進行數(shù)據(jù)管理,以保證數(shù)據(jù)庫的高效穩(wěn)定運行。
具體實現(xiàn)方法如下:
CREATE TABLE Archive_2012 (LIKE Sales.SalesOrderDetail); GO ALTER TABLE Archive_2012 ADD CONSTRAINT PK_Archive_2012 PRIMARY KEY (SalesOrderID, SalesOrderDetailID) GO CREATE CLUSTERED INDEX CIX_SalesOrderID ON Archive_2012 (SalesOrderID) GO CREATE NONCLUSTERED INDEX IX_SalesOrderDetailID ON Archive_2012 (SalesOrderDetailID) GO ALTER PARTITION SCHEME [psArchive] NEXT USED [Archive2013]; GO
說明:
“CREATE TABLE Archive_2012 (LIKE Sales.SalesOrderDetail);”表示在AdventureWorks中創(chuàng)建一個名為Archive_2012的表,該表的結(jié)構(gòu)與Sales.SalesOrderDetail相同;
“ALTER TABLE Archive_2012 ADD CONSTRAINT PK_Archive_2012 PRIMARY KEY(SalesOrderID, SalesOrderDetailID)”表示向一個已經(jīng)存在的表中添加一個主鍵索引;
“CREATE CLUSTERED INDEX CIX_SalesOrderID ON Archive_2012 (SalesOrderID)”表示為序列SalesOrderID添加聚簇索引;
“CREATE NONCLUSTERED INDEX IX_SalesOrderDetailID ON Archive_2012 (SalesOrderDetailID)”表示為列SalesOrderDetailID添加非聚簇索引;
“ALTER PARTITION SCHEME [psArchive] NEXT USED [Archive2013]”表示將分區(qū)Schema的下一個使用分區(qū)修改為名為Archive2013的新分區(qū)。
4.2 縱向分區(qū)
SQLServer還支持將其列屬性分裂為多個子集的功能,一般稱為垂直分區(qū)。當數(shù)據(jù)庫規(guī)模膨脹到一定程度后,可以采用垂直分區(qū)的方式來進行數(shù)據(jù)管理,以保證數(shù)據(jù)庫的高效穩(wěn)定運行。
具體實現(xiàn)方法如下:
-- 對表格Person.Person進行垂直拆分 ALTER TABLE Person.Person DROP COLUMN Suffix, Title; GO CREATE TABLE Person.Name ( BusinessEntityID INT PRIMARY KEY, FirstName VARCHAR(50), LastName VARCHAR(50), MiddleName VARCHAR(50) ) GO CREATE TABLE Person.Title ( BusinessEntityID INT PRIMARY KEY, Title VARCHAR(50), Suffix VARCHAR(10) );
說明:
“ALTER TABLE Person.Person DROP COLUMN Suffix, Title;”表示將表格Person.Person中的列Suffix和Title刪除;
“CREATE TABLE Person.Name (BusinessEntityID INT PRIMARY KEY, FirstName VARCHAR(50), LastName VARCHAR(50), MiddleName VARCHAR(50));”表示創(chuàng)建了一個名為Person.Name的表,并為其每一行添加了BusinessEntityID、FirstName、LastName和MiddleName四個字段,其中主鍵為BusinessEntityID;
“CREATE TABLE Person.Title (BusinessEntityID INT PRIMARY KEY, Title VARCHAR(50), Suffix VARCHAR(10));”表示創(chuàng)建了一個名為Person.Title的表,并為其每一行添加了BusinessEntityID、Title和Suffix三個字段,其中主鍵為BusinessEntityID。
5. 總結(jié)
數(shù)據(jù)庫規(guī)模膨脹是SQLServer數(shù)據(jù)庫運維中常見的問題之一。本文介紹了一些緩解膨脹問題的方法,包括增加內(nèi)存、數(shù)據(jù)壓縮、數(shù)據(jù)庫分區(qū)等。在實踐過程中,應(yīng)根據(jù)具體情況,采取適當?shù)姆椒ǎ赃_到最優(yōu)的緩解膨脹問題的效果。
到此這篇關(guān)于sqlserver數(shù)據(jù)庫規(guī)模膨脹太大怎么優(yōu)化的文章就介紹到這了,更多相關(guān)sqlserver數(shù)據(jù)庫太大內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SQL Server 聚焦存儲過程性能優(yōu)化、數(shù)據(jù)壓縮和頁壓縮提高IO性能方法(一)
- 日常收集整理SqlServer數(shù)據(jù)庫優(yōu)化經(jīng)驗和注意事項
- SQL server 2008 數(shù)據(jù)庫優(yōu)化常用腳本
- sqlserver數(shù)據(jù)庫優(yōu)化解析(圖文剖析)
- sqlserver關(guān)于分頁存儲過程的優(yōu)化【讓數(shù)據(jù)庫按我們的意思執(zhí)行查詢計劃】
- SQL Server數(shù)據(jù)庫的高性能優(yōu)化經(jīng)驗總結(jié)
- 開啟SQLSERVER數(shù)據(jù)庫緩存依賴優(yōu)化網(wǎng)站性能
- SQL Server 數(shù)據(jù)庫優(yōu)化
- SQL Server數(shù)據(jù)庫性能優(yōu)化技術(shù)
- SQL Server 數(shù)據(jù)太多優(yōu)化的方法
相關(guān)文章
SQL?Server導(dǎo)入Excel數(shù)據(jù)的簡單圖文教程
這篇文章主要介紹了SQL?Server導(dǎo)入Excel數(shù)據(jù)的相關(guān)資料,包括如何將數(shù)據(jù)從Excel導(dǎo)入到指定數(shù)據(jù)庫,包括選擇數(shù)據(jù)源、配置OLEDBProvider、編輯目標字段映射等關(guān)鍵步驟,以及最終執(zhí)行導(dǎo)入操作的流程,需要的朋友可以參考下2024-11-11sql?server使用nest?typeorm實現(xiàn)索引的方式
本文通過示例演示了如何使用TypeORM庫在SQL?Server中創(chuàng)建不同類型的索引,分為普通索引,唯一索引,復(fù)合索引和空間索引,本文結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-03-03SQL Server遠程定時備份數(shù)據(jù)庫腳本分享
這篇文章主要介紹了SQL Server遠程定時備份數(shù)據(jù)庫腳本分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-02-02SQL Server誤區(qū)30日談 第16天 數(shù)據(jù)的損壞和修復(fù)
我已經(jīng)聽過很多關(guān)于數(shù)據(jù)修復(fù)可以做什么、不可以做什么、什么會導(dǎo)致數(shù)據(jù)損壞以及損壞是否可以自行消失。其實我已經(jīng)針對這類問題寫過多篇博文,因此本篇博文可以作為“流言終結(jié)者”來做一個總結(jié),希望你能有收獲2013-01-01SQL Server Alwayson創(chuàng)建代理作業(yè)的注意事項詳解
在工作中有時為了避免數(shù)據(jù)庫增長太大所以需要定時來刪除某段時間前的數(shù)據(jù),所以使用代理作業(yè)的方式來實現(xiàn)定時刪除的功能,下面這篇文章主要給大家介紹了關(guān)于SQL Server Alwayson創(chuàng)建代理作業(yè)的注意事項,需要的朋友可以參考下。2017-09-09