2012-02-25 57 views
2

在我工作的公司,我們正在構建一個數據倉庫應用程序,它將成爲我們運行的許多查詢的基於Web的前端。 [使用ASP.net]使用ASP.Net從SQL Server導出大量數據

其中一些查詢將帶來超過一百萬條記錄(和一年端2個萬元左右,也許記錄) -

最多也就幾千,等

是什麼一種很好的方式來構建應用程序,以便您可以瀏覽到您想要的查詢,將其導出並生成所需數據的CSV文件 -

我在想一個基於Web的界面,它調用BCP生成一個文件,並在創建報告時向您顯示,以便它可以下載並在24小時內過期ng創建 -

任何想法?

Sas

回答

1

我在以前的生活中構建了類似的東西。本質上是一個C#命令行應用程序,它對我們的報告服務器運行查詢。

一些要點:

  • 它沒有問題,他們花了多長時間,因爲它是在後臺 - 當一個文件已經準備好,它會在用戶界面中顯示出來,並且用戶可以下載它。他們沒有實時等待。

  • 這並不重要,因爲上面的觀點是無效的,因爲這些報告都是針對前一天的。我們將它們從生產的報告副本中刪除,而不是針對通過日誌傳送保持延遲的生產。

  • 我們沒有設置任何到期的文件,因爲用戶可以在星期五申請報告,並不期望在星期一之前查看它。我們寧願讓磁盤上的文件再次運行報告(文件服務器磁盤空間相對便宜)。我們讓他們在刪除報告後立即刪除報告,並且他們會自行採取措施來防止UI中的混亂。

  • 由於數據的各種要求,我們使用C#和DataReader而不是批量導出方法。我們需要提供靈活性來包含列標題或不包含引用數據,以處理支持各種文化的千位分隔符和小數點,以應用不同的行結束符(\ r \ n,\ n,\ r),不同的擴展,Unicode /非Unicode文件格式,以及不同的分隔符(逗號,製表符,管道等)。此外,還有針對不同的客戶,甚至不同的報告不同的要求 - 有些只要一報告完成想要一個電子郵件通知,別人想發送到某些FTP服務器的報告的副本,等

你可能還有很多需求還沒有想到,但我希望能給你一個開始。

+0

謝謝,這是非常非常有幫助的 - – 2012-02-25 19:39:55

相關問題