使用DataReader進行資料分頁注意的一些細節

2022-01-13 15:21:25 字數 734 閱讀 9685

使用datareader進行資料分頁有個好處就是簡單和通用,不需要關心資料相關細節;由於在客端進行資料分頁因此可以適用於所有資料庫.雖然datareader進行資料分頁簡單方便,但它所適用的場景只是經過條件篩選後的少量資料進行分頁處理,但有於ado.net相關實現的一些細節上即在對少量資料進行分頁在處理還是有些地方注意.

一般我們使用datareader通過while(reader.read())來得到相對區間的資料,然後呼叫對應的command.cancel()方法和reader.close進行乙個結束處理.但通過測試的情況來看這兩個操作並達不到我們需要的效果.呼叫以上兩個方法也無可避免reader的有記錄,即使我們在篩選的1000條記錄中獲取40-60條資料呼叫以上兩個方法後reader內部也會去處理後面的所有其他記錄.從測試結果來看mssql,oracle相關實現的都有這情況.這看上去的確是件很坑爹的事情...

如果你的查詢裡有唯一鍵值,那可以先reader相關id獲取乙個分頁後的id列表,然後再通過id列表去獲取相關記錄;這種方式效果還是十分顯著的,如果當你查詢記錄多的時候可節省的頻寬可是省下幾倍.以下是針對northwind的order所有記錄分頁的測試結果

從測試結果來看可節省的頻寬是非常多的.

使用SSIS進行資料清洗

原文 使用ssis進行資料清洗 oltp系統的後端關聯式資料庫用於儲存不同種類的資料,理論上來講,資料庫中每一列的值都有其所代表的特定含義,資料也應該在存入資料庫之前進行規範化處理,比如說 age 列,用於儲存人的年齡,設定的資料型別為int型別。存入資料庫的值是2000雖然看起來沒有任何問題,但結...

使用python進行資料清洗

1 在資料清洗前,我們需要先檢視資料概況,了解我們需要清洗的資料大概包含什麼字段 每個字段下面資料範圍大概如何,資料清洗常用到的函式和語法分別有 info函式 用於了解資料總體情況,包括行數,列數,各列名稱等,比如 shape函式 用於檢視資料矩陣的行和列 describe函式 了解datafram...

Android使用Volley框架進行資料傳輸

1.在 build.gradle 檔案中匯入包 匯入volley相關 implementation com.mcxiaoke.volley library 1.0.19 implementation androidx.localbroadcastmanager localbroadcastmanag...