日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

三個影響SQL Server性能的關(guān)鍵(2)_Mssql數(shù)據(jù)庫教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:談SQL Server 數(shù)據(jù)挖掘應(yīng)用于商業(yè)智能中
智能應(yīng)用的平臺 在過去的二十年中,經(jīng)濟(jì)快速發(fā)展,組織機(jī)構(gòu)普遍都收集了大量的商業(yè)數(shù)據(jù)。然而,擁有大量的數(shù)據(jù)并不意味著擁有了豐富的商業(yè)信息。因此,商業(yè)智能需要進(jìn)展到下一步數(shù)據(jù)挖掘。 數(shù)據(jù)挖掘能幫助您在瀏覽巨量數(shù)據(jù)的同時從中發(fā)現(xiàn)潛在有效的模式,并

考慮使用窄的索引在一個或兩個列上,窄索引比多索引和復(fù)合索引更能有效。用窄的索引,在每一頁上將會有更多的行和更少的索引級別(相對與多索引和復(fù)合索引而言),這將推進(jìn)系統(tǒng)性能。對于多列索引,SQL Server維持一個在所有列的索引上的密度統(tǒng)計(用于聯(lián)合)和在第一個索引上的histogram(柱狀圖)統(tǒng)計。根據(jù)統(tǒng)計結(jié)果,如果在復(fù)合索引上的第一個索引很少被選擇使用,那么優(yōu)化器對很多查詢請求將不會使用索引。

有用的索引會提高select語句的性能,包括insert,uodate,delete。但是,由于改變一個表的內(nèi)容,將會影響索引。每一個insert,update,delete語句將會使性能下降一些。實(shí)驗(yàn)表明,不要在一個單表上用大量的索引,不要在共享的列上(指在多表中用了參考約束)使用重疊的索引。

在某一列上檢查唯一的數(shù)據(jù)的個數(shù),比較它與表中數(shù)據(jù)的行數(shù)做一個比較。這就是數(shù)據(jù)的選擇性,這比較結(jié)果將會幫助你決定是否將某一列作為侯選的索引列,如果需要,建哪一種索引。你可以用下面的查詢語句返回某一列的不同值的數(shù)目。

select count(distinct cloumn_name) from table_name

假設(shè)column_name是一個10000行的表,則看column_name返回值來決定是否應(yīng)該使用,及應(yīng)該使用什么索引。

Unique values Index

5000 Nonclustered index

20 Clustered index

3 No index

鏃索引和非鏃索引的選擇

<1>鏃索引是行的物理順序和索引的順序是一致的。頁級,低層等索引的各個級別上都包含實(shí)際的數(shù)據(jù)頁。一個表只能是有一個鏃索引。由于update,delete語句要求相對多一些的讀操作,因此鏃索引常常能加速這樣的操作。在至少有一個索引的表中,你應(yīng)該有一個鏃索引。

在下面的幾個情況下,你可以考慮用鏃索引:

例如: 某列包括的不同值的個數(shù)是有限的(但是不是極少的)

顧客表的州名列有50個左右的不同州名的縮寫值,可以使用鏃索引。

例如: 對返回一定范圍內(nèi)值的列可以使用鏃索引,比如用between,>,>=,<,<=等等來對列進(jìn)行操作的列上。

select * from sales where ord_date between ’5/1/93’ and ’6/1/93’

例如: 對查詢時返回大量結(jié)果的列可以使用鏃索引。

SELECT * FROM phonebook WHERE last_name = ’Smith’

當(dāng)有大量的行正在被插入表中時,要避免在本表一個自然增長(例如,identity列)的列上建立鏃索引。如果你建立了鏃的索引,那么insert的性能就會大大降低。因?yàn)槊恳粋插入的行必須到表的最后,表的最后一個數(shù)據(jù)頁。

當(dāng)一個數(shù)據(jù)正在被插入(這時這個數(shù)據(jù)頁是被鎖定的),所有的其他插入行必須等待直到當(dāng)前的插入已經(jīng)結(jié)束。

一個索引的葉級頁中包括實(shí)際的數(shù)據(jù)頁,并且在硬盤上的數(shù)據(jù)頁的次序是跟鏃索引的邏輯次序一樣的。

<2>一個非鏃的索引就是行的物理次序與索引的次序是不同的。一個非鏃索引的葉級包含了指向行數(shù)據(jù)頁的指針。

在一個表中可以有多個非鏃索引,你可以在以下幾個情況下考慮使用非鏃索引。

在有很多不同值的列上可以考慮使用非鏃索引

例如:一個part_id列在一個part表中

select * from employee where emp_id = ’pcm9809f’

查詢語句中用order by 子句的列上可以考慮使用鏃索引。

分享:怎樣改善SQL Server數(shù)據(jù)庫的內(nèi)存管理
最近,為了能在數(shù)據(jù)庫服務(wù)器中運(yùn)行其他應(yīng)用程序,在保持?jǐn)?shù)據(jù)庫操作系統(tǒng)版本不變的前提下對數(shù)據(jù)庫服務(wù)器進(jìn)行了軟、硬件上的升級。在軟件上,將操作系統(tǒng)從Windows 2000升級到Windows Server 2003;在硬件上,將服務(wù)器中的內(nèi)存由原來的512MB增加到1GB(1024MB)。

來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時間:2009-03-15
相關(guān)Mssql數(shù)據(jù)庫教程