[SQL Database] 讓 SQL Database Migration Wizard 支援繁體中文系統

SQL Database Migration Wizard (之前被稱為 SQL Azure Migration Wizard) 是一個移轉本地資料庫到 SQL Database 雲端資料庫的工具程式,它比 SSMS 的 Script Generation Wizard 和 SSIS Database Import/Export Wizard 等工具要來得好用,而且它可以偵測並適時修補在資料表中沒有 Clustered Index 的問題,讓移轉更順暢。只是一直以來,它總是不支援中文環境...

...繼續閱讀 »

[Windows Azure] 使用 Linked Server 方式連接 Windows Azure SQL Database

本文介紹使用 Linked Server 存取 Azure SQL Database 的作法,但要特別聲明,微軟其實並不建議用這個方法,針對跨資料庫查詢,微軟提供了 Azure SQL Database Elastic Query 的功能,請參閱:https://azure.microsoft.com/zh-tw/documentation/articles/sql-database-elastic-query-overview/,而我也將會找時間編寫這個功能的介紹文章。
...繼續閱讀 »

[SQL Server] SQL Server Data Tools (SSDT)

SQL Server 2012 (Denali) 在 3/6 正式發布 RTM 的版本,依 SQL Server 的發展史來看,這次的改版算是一個大型改版,依 SQL Server 2012 官方網站所公布的功能來看,SQL Server 2012 的新功能確實比 SQL Server 2008 R2 要來的多太多了,而且也多了幾個不同的版本,例如 SQL Server 2012 Parallel Data Warehouse for Developers (SQL Server Developer 的進階版本)。不過本文並不是要說 SQL Server 2012 有什麼新功能,而是搭配 SQL Server 2012 所研發的一個新的工具,專屬開發人員使用的-SQL Server Data Tools (SSDT)...

...繼續閱讀 »

[SQL Server] 鎖定使用的藝術 (Part 2) - 隔離層次 (Isolation Level)

鎖定的另一種情況,就是當應用程式使用交易 (Transaction) 時,資料庫引擎會啟用交易處理的機制,在 BEGIN TRANS 至 COMMIT/ROLLBACK 間修改資料,在交易進行的期間資料庫引擎會依照適當的方式來進行交易相關資料的鎖定,而在交易之外的使用者讀取或寫入這些交易資料時,會受到交易鎖定行為的影響,資料庫引擎在交易進行期間除了要保障在交易內的所有資料變更都要符合 ACID 規範外,也要避免在交易外的其他並行存取的可能干擾,所以在資料庫引擎中都會設計一個在交易期間將交易資料與一般並行資料間的區隔機制,以保護交易中的資料以及其他並行作業間的交互動作,這個機制就是隔離層次。

...繼續閱讀 »

[SQL Server] 鎖定使用的藝術 (Part 1) - 鎖定控制類型

只要是寫到資料庫存取程式,而且程式又是多人運作 (這裡的多人是指 100 個人以上同時存取) 的環境時,很難不碰到並行處理 (Concurrency Process) 的問題,並行處理在資料庫系統中是一門很重要的學問,因為它一定會出現在商業運轉的環境,而且問題不只是資料庫,像是執行緒的處理也會遇到這樣的問題,所以在並行環境下資料庫都會有一些行動或處理方式,鎖定 (Lock) 就是其中一種。

...繼續閱讀 »

[SQL Server] 游標使用的藝術

在資料庫的設計中,用戶端程式的存取通常會扮演重要的角色,因為用戶端的數量,使用的存取方式,SQL 指令,交易處理等都會影響到資料庫應用程式的效能。我們一般在想定資料庫發生效能問題時,最有可能的幾個因素是 CPU/Memory 以及 I/O 能力,對應到用戶端的程式處理的話,通常就是 SQL 指令,連線開關以及資料的存取方式,這三種通常會具有資料庫效能的決定力。

...繼續閱讀 »