2011-11-07 71 views
1

我正在爲使用SqlDataReader從SQL服務器檢索數據的應用程序編寫高性能數據檢索/存儲類。SQL Server數據格式

出於好奇,我想知道來自SQL服務器的數據來自何種形式。人物?二進制?其他形式?

不幸的是,我不能在我的辦公室做任何包嗅探,這是我認爲這個答案可以找到的一種方式。

編輯:這個問題的目的是確定從SQL服務器中檢索數據的格式,以便儘可能少的操作,然後再將它放入數據結構中。

這個問題與a previous question of mine有關,我發現將數據格式轉換爲字符串之間的差異會對性能產生重大影響。

回答

3

格式記錄在Tabular Data Stream Protocol Specification。話雖如此,協議和連線格式在很大程度上是無關緊要的,如果您檢索的數據太多以至於傳輸速度很慢,那麼您已經深陷錯誤的道路。

確保您的數據訪問得到了優化,最重要的是您的數據模型設計良好,並且與預期的工作負載相匹配(換言之:覆蓋關鍵查詢的索引)。

如果檢索(存儲在數據庫中如媒體文件)。大量的數據,然後有一些具體的方法來使用SqlCommand類,即SequentialAccess行爲標誌:

提供了一種方式DataReader處理包含具有較大二進制值的列 的行。而不是加載整個行,SequentialAccess使DataReader能夠將數據加載爲流。然後,您可以使用GetBytes或GetChars方法指定用於啓動讀取操作的位置的字節 ,並返回數據的有限緩衝區大小爲 。

有關如何使用此功能的示例,請參閱Download and Upload images from SQL Server via ASP.Net MVC

+0

優秀信息,謝謝! – ChandlerPelhams