国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - Asp.Net網站優化系列之數據庫的優化措施與索引優化方法

Asp.Net網站優化系列之數據庫的優化措施與索引優化方法

2019-09-04 10:46腳本之家 ASP.NET教程

索引的作用就類似于書的目錄,書的目錄會按照章節的順序排列,會指想某一張的位置。這樣如果在一本數百頁的書里面查找某個章節位置的時候,我們就可以只掃描書的目錄,掃描的范圍縮小了n倍,查詢的效率自然就提高了。

另外在sql server內存夠用的情況下索引會被放到內存中,在內存中查找自然又會提高效率;所以我們必須得合理利用索引。 
1)對什么列建索引 
數據庫默認情況下會對主鍵建聚集索引,除了這個索引之外還需要在哪些列上建索引呢?這個問題只能具體情況具體分析,要看需要優化的sql語句(通常是查詢次數多,查詢相應想要高的語句),根據什么列的條件進行查詢。 
例如:在論壇的數據庫中有一張表是帖子回復表,在論壇的應用中用到最多的就是對指定帖子的某一頁的回復進行查詢,查詢回復表的條件是主貼的id;這時候在主貼字段上建索引就勢在必然。 

2)一定要在主鍵上建聚集索引嗎 
通常情況下sql server會自動給主鍵加上聚集索引,但也有一些例外的情況我們需要把聚集索引建在其他列上,例如我們用到了表分區,而分區的字段不是主鍵,這時候就需要將聚集索引建在分區的列上。另外如果查詢時根據主鍵查詢較少,而根據其他列的查詢較頻繁,則也可以考慮將聚集索引建在非主鍵上。單需要注意的是聚集索引的列必須是不易變的列,如果聚集索引變了一會引起聚集索引內的記錄的搬遷,造成頁page的分離與碎片;二會引起每一個非聚 集索引被修改,以便于所有相關的非聚集索引的行的索引鍵的值被糾正。這既浪費時間和空間,也導致需要整理的碎片,增加了不必要的開銷(每個列重組聚集鍵)。 

3)復合索引(索引有兩個以上的列)要注意列順序 
索引在數據庫中是以B樹的形式存儲的。包含A,B兩個列的索引會首先根據A列建B樹,A列的葉節點上才會開始根據B列建B樹。所以包含兩個列的索引就需要根據查詢條件所在列來決定兩個列在索引中的順序。 
可以用下面的sql做實驗: 

復制代碼代碼如下:


USE [Test] 
GO 
/****** 對象: Table [dbo].[testIndexOrder] 腳本日期: 05/27/2010 09:11:26 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
CREATE TABLE [dbo].[testIndexOrder]( 
[ID] [int] IDENTITY(1,1) NOT NULL, 
[FirstName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, 
[LastName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, 
[Desc] [nvarchar](400) COLLATE Chinese_PRC_CI_AS NULL, 
CONSTRAINT [PK_testIndexOrder] PRIMARY KEY CLUSTERED 

[ID] ASC 
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] 
) ON [PRIMARY] 
GO 
/****** 對象: Index [IX_testIndexOrder] 腳本日期: 05/27/2010 09:11:51 ******/ 
CREATE NONCLUSTERED INDEX [IX_testIndexOrder] ON [dbo].[testIndexOrder] 

[FirstName] ASC, 
[LastName] ASC 
)WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY] 
GO 
declare @i INT; 
DECLARE @random varchar(36); 
set @i = 0; 
while @i < 100000 
begin 
set @random = newid(); 
INSERT INTO [testIndexOrder] 
(FirstName,LastName,[Desc]) 
VALUES( 
substring(@random,1,8),substring(@random,12,8),@random 
); 
set @i = @i + 1 
end 

set statistics time on 
select * from [testIndexOrder] where lastname = '6F-4ECA-' 
select * from [testIndexOrder] where firstname = 'CAABE009' 
set statistics time off 


4)索引的個數問題 
索引提高查詢效率是以降低更新、插入、刪除的速度為代價的。每當索引列發生變化時都需要對索引數據進行相應的調整。所以一個表上不可以建太多的索引,除非你完全不在乎修改數據的效率。另外sql server本身會對索引的數量和索引的數據長度有限制,具體請參考 
5)在必要時重建索引 
Sql server運行一段時間之后就會形成一些索引碎片,這時候就需要重建索引了,有時候重建索引可以起到意想不到的效果。 
查看索引碎片,重建索引,可以通過sql server管理器來重建;也可以通過下面的sql語句來實現: 

復制代碼代碼如下:


--顯示表testIndexOrder的索引碎片情況 
DBCC SHOWCONTIG(testIndexOrder) 

--重建表的索引 
--第一個參數,可以是表名,也可以是表ID。 
--第二個參數,如果是'',表示影響該表的所有索引。 
--第三個參數,填充因子,即索引頁的數據填充程度。如果是,表示每一個索引頁都全部填滿,此時select效率最高,但以后要插入索引時,就得移動后面的所有頁,效率很低。如果是,表示使用先前的填充因子值。 
DBCC DBREINDEX(testIndexOrder,'',) 


數據庫優化是一門復雜的學問,需要不斷的學習實踐,積累經驗。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线a视频| 综合色在线 | 亚洲毛片 | 这里只有国产精品 | 黄色av网站免费看 | 欧美成人一级 | 日韩中文一区二区三区 | 日日夜夜精品免费视频 | 欧美精品日韩 | 亚洲精品久久久久久下一站 | 精品国产精品三级精品av网址 | 成人国产免费视频 | 亚洲精品久久久一区二区三区 | 伊人天堂在线 | 午夜私人影院在线观看 | 亚洲欧美另类久久久精品2019 | 亚洲精品在线免费看 | 国产福利91精品一区二区 | 黄色a一级电影 | 黄色毛片一级片 | 国产无套丰满白嫩对白 | 亚洲天堂一区在线 | 亚洲国产精品99久久久久久久久 | 国产一区二| 色站综合| 在线播放中文字幕 | 国产一区二区三区成人 | 国产一级毛片国语一级 | 亚洲依依 | 日本亚洲最大的色成网站www | 成人在线精品 | 亚洲激情视频 | av片免费 | 狠狠色狠狠色合久久伊人 | 欧美一级大片免费 | 久久精品在线 | 国产精品久久久久久久久久99 | 久久中文字幕av | 久久久久久亚洲精品 | 中文字幕91| 亚洲欧美综合 |