程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL 2005與SQL2000四大方面的改進

SQL 2005與SQL2000四大方面的改進

編輯:關於SqlServer

本文從數據庫設計、開發、DBA管理等四個方面敘述了SQL2005與SQL2000兩個版本間的改進。

一、數據庫設計方面

1、字段類型。

varchar(max)\nvarchar(max)類型的引入大大的提高了編程的效率,可以使用字符串函數對CLOB類型進行操作,這是一個亮點。但是這就引發了對varchar和char效率討論的老問題。到底如何分配varchar的數據,是否會出現大規模的碎片?是否碎片會引發效率問題?這都是需要進一步探討的東西。

varbinary(max)代替image也讓SQL Server的字段類型更加簡潔統一。

XML字段類型更好的解決了XML數據的操作。XQuery確實不錯,但是個人對其沒好感。(CSDN的開發者應該是相當的熟了!)

2、外鍵的級聯更能擴展。

可能大部分的同行在設計OLTP系統的時候都不願意建立外鍵,都是通過程序來控制父子數據的完整性。但是再開發調試階段和OLAP環境中,外鍵是可以建立的。新版本中加入了SET NULL 和 SET DEFAULT 屬性,能夠提供能好的級聯設置。

3、索引附加字段。

這是一個不錯的新特性。雖然索引的附加字段沒有索引鍵值效率高,但是相對映射到數據表中效率還是提高了很多。我做過試驗,在我的實驗環境中會比映射到表中提高30%左右的效率。

4、計算字段的持久化。

原來的計算字段其實和虛擬字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了計算字段的持久化,這就提高了查詢的性能,但是會加重insert和update的負擔。OLTP慎用。OLAP可以大規模使用。

5、分區表。

分區表是個亮點!從分區表也能看出微軟要做大作強SQL Server的信心。資料很多,這裡不詳細說。但是重點了解的是:現在的SQL Server2005的表,都是默認為分區表的。因為它要支持滑動窗口的這個特性。這種特性對歷史數據和實時數據的處理是很有幫助的。

但是需要注意的一點,也是我使用過程中發現的一個問題。在建立function->schema->table後,如果在現有的分區表上建立沒有顯式聲明的聚集索引時,分區表會自動變為非分區表。這一點很讓我納悶。如果你覺得我的非分區索引無法對起子分區。

分區表效率問題肯定是大家關心的問題。在我的試驗中,如果按照分區字段進行的查詢(過濾)效率會高於未分區表的相同語句。但是如果按照非分區字段進行查詢,效率會低於未分區表的相同語句。但是隨著數據量的增大,這種成本差距會逐漸減小,趨於相等。(500萬數量級只相差10%左右)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved