SQL 的 ORDER BY 會執行資料的重新排序,然後輸出給上層查詢或輸出給用戶端,開發實務上 ORDER BY 的情況非常常見,就跟呼吸一樣自然,但是 ORDER BY 對一個設計不良的資料庫可以說是一個大災難,因為它排序的對象是結果集,若結果集愈大,ORDER BY 會拖慢效能,但適當的設計可以減少 ORDER BY 對效能的損耗。
SQL Server 的 ORDER BY 兩三事
- 3591
- 0
SQL 的 ORDER BY 會執行資料的重新排序,然後輸出給上層查詢或輸出給用戶端,開發實務上 ORDER BY 的情況非常常見,就跟呼吸一樣自然,但是 ORDER BY 對一個設計不良的資料庫可以說是一個大災難,因為它排序的對象是結果集,若結果集愈大,ORDER BY 會拖慢效能,但適當的設計可以減少 ORDER BY 對效能的損耗。
在資料庫設計上,PK (主鍵) 一直都是設計的重點之一,但主鍵使用的資料型態有可能直接或間接影響到資料庫的存取效能,然而技術是會演進的,30年前可能不行的作法在30年後的今天是否仍然不適用? 似乎有待商榷。
在資料表結構 (table schema) 中,每個欄位除了基本的欄位名稱、型態、大小等資料外,有一個有趣的欄位很特別,就是是否允許 NULL,NULL 這個東西對程式設計師來說是又愛又恨,有時會被它搞得嫑嫑的,但是它有時卻又是一個有必要的存在。
SQL Database Migration Wizard (之前被稱為 SQL Azure Migration Wizard) 是一個移轉本地資料庫到 SQL Database 雲端資料庫的工具程式,它比 SSMS 的 Script Generation Wizard 和 SSIS Database Import/Export Wizard 等工具要來得好用,而且它可以偵測並適時修補在資料表中沒有 Clustered Index 的問題,讓移轉更順暢。只是一直以來,它總是不支援中文環境...
SQL Azure的資料庫應用程式開發和SQL Server有95%以上可相容,剩下的5%只要修改一下SQL,將不支援的指令移除後,一樣能連接SQL Azure。
SQL Azure的安全性可以分為兩個部份,一個是防火牆設定,另一個則是帳戶的管理與授權設定。
SQL Azure資料庫的管理,基本上多數功能和在本地的SQL Server是一樣的,但是和伺服器與作業系統調整的功能,就不在SQL Azure的支援範圍以內。
筆者之前在多場研討會和課程中講授SQL Azure時,都會強調一件事:『雖然SQL Azure和SQL Server很像,但它們本質上還是不同的』。看起來再怎麼像的東西,也一定有不同的地方,SQL Azure以Windows Azure基礎建設環境為基石建構,同時享有了高可用度與容錯能力,但是它並不是什麼都沒改就能做容錯的,除了基礎建設對網路與虛擬機器資源的支援外,SQL Server本身勢必也要做一些修改,才能符合SQL Azure原始設計上應有的功能。
在介紹完Windows Azure Platform基本的核心服務Compute Service, Storage Service, VM Role, Remote Desktop和VPN後,我們將焦點轉到資料庫上,微軟的SQL Azure是業界少數將關聯式資料庫(RDBMS)開放給外界使用的一種雲端資料庫服務(Cloud Database)...
如果可以由資料庫本身去做彈性設計的話,對於物件使用 ORM 以及擴充上會有正面幫助,物件可以不受物件既有資料表欄位的限制,即可由物件自己去決定會多或會少哪些資料,而資料庫依照物件的要求做出反應,即可確保物件的高彈性,又可以簡化資料表的設計。這個方法即為 Profile 架構。