


使用SQL Server 2005的3個理由
以前的處理大數(shù)據(jù)量時很多人會采取使用多個結(jié)構(gòu)相同的表按時間段來分,不同時間的數(shù)據(jù)存在不同的數(shù)據(jù)表里,這樣如果只查詢一個表的數(shù)據(jù)就很快,如果需要跨表查詢則再通過連接視圖將這些表連起來偽裝成一個表的樣子,這樣可以提高查詢效率,但犧牲了程序設(shè)計的優(yōu)雅性和數(shù)據(jù)庫設(shè)計的簡單性,特別是在處理關(guān)系、約束、數(shù)據(jù)完整性時會非常的繁瑣復(fù)雜。
升級到sql2005可以采用分區(qū)表(partition table)來處理這種需求,我們可以將我們的分區(qū)規(guī)則寫成分區(qū)函數(shù),然后我們的分區(qū)表就可以按照這個分區(qū)函數(shù)來將我們的表存儲在不同的存儲介質(zhì)上,當(dāng)我們查詢時SQL Server最優(yōu)化程序會自動選擇分區(qū)做Join這樣當(dāng)然要比大數(shù)量過濾起來有效的多。
2:通過Row_Number來給查詢結(jié)果集加個序號
查詢結(jié)果集沒有序號郁悶的問題相信折騰了不少人,每每有客戶指著我的Grid OR Report對我說“小莫,你能不能給這個地方加個序號?”對于這樣的合理要求只能說是,然后就將查詢來的結(jié)果手動的加個序號,對犧牲的性能也只好燒把高香祝福它能升上天堂,然后就是保佑著客戶查詢數(shù)據(jù)量不要太大。
升級到SQL2005 我可以將序號這個功能默認(rèn)給用戶不要他再給我提這樣的合理要求了。
3:交叉表惡夢的結(jié)束
如果你做過考勤管理,選擇建31個列還是添加31行?選擇31列直觀,但你查詢的時候你也許更喜歡你頭撞墻而不是來查詢,添加31行當(dāng)你決定用列顯示日期的時候你發(fā)現(xiàn)你還是愿意撞墻。還有當(dāng)你做類似學(xué)生成績管理系統(tǒng)的時候你要將課程表中的課程數(shù)據(jù)做列學(xué)生表中的學(xué)生作行的時候這個時候你突然醒悟還是撞墻好些。
升級到SQL Server2005你可以用Pivot這個單詞的意思就是“樞軸”有了軸你可以將行扭成列還可將列扭成行(UNPivot)
關(guān)鍵字:SQL Server、數(shù)據(jù)庫
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解