簡體   English   中英

從不可解析的表SQL Server查詢和導出

[英]Query and export from unsortable table SQL Server

首先,我很抱歉我的英語不好,不是我的語言。

我的問題是:我有一張約有1000萬條銀行交易記錄的表格。 它沒有PK,也沒有排序為任何列。

我的工作是創建一個頁面來過濾並將其導出到csv。 但是導出Csv的行數限制大約是20萬條記錄。

我有一些想法:

  • 創建800個800台ATM表(只是一個想法,我知道它是愚蠢的)並從主表發送數據到它每天1次=>導出到800文件csv

  • 使用Linq每次獲得100k記錄,然后下次,我跳過這些。 但是當Skip命令需要OrderBy時我被卡住了,我得到了OutOfMemoryException

     db.tblEJTransactions.OrderBy(u => u.Id).Take(100000).ToList() 

任何人都可以幫助我,每個想法都是受歡迎的(我的老板說我可以使用任何包括創建數百個表,使用Nosql ...)

如果表中沒有主鍵,則添加一個主鍵。 最簡單和最簡單的方法是添加一個int IDENTITY列。

ALTER TABLE dbo.T 
ADD ID int NOT NULL IDENTITY (1, 1)

ALTER TABLE dbo.T 
ADD CONSTRAINT PK_T PRIMARY KEY CLUSTERED (ID)

如果無法更改原始表,請創建副本。

一旦表具有主鍵,您就可以對其進行排序,並選擇具有可預測結果的200K行的塊/頁。

我不確定我的解決方案。 但你可以參考並嘗試一下:

select top 1000000 *, row_number() over (order by (select null)) from tblEJTransactions

以上查詢返回排序列表。

然后你可以使用Linq來獲得結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM