2013-01-23 39 views
1

數據庫中導出數據的最佳方式是哪些數據庫包含超過100k個文檔,並且有很多字段?應用程序邏輯不是必需的,只是存儲在應用程序中的數據。數據庫不包含每個文檔的表單設計元素。 LEI不適合我們。導出大蓮花數據庫

  1. 目前我們使用java代理將數據導出到MS EXCEL,但 運行時間過長。
  2. 可能會更快,
  3. ...或者是否有任何可以足夠快的備用解決方案?
+0

您只需要免費的解決方案? – pstr

回答

0

一個高效,簡便的方法來獲取數據作爲XML的文件將使用URL來檢索這樣的:

/view?ReadViewEntries&Start=1&Count=1000 

你將不得不取在1000塊都100K代碼(此值可能會根據數據量進行調整,但如果它太大,服務器可能會掛起)。

視圖包含作爲列的所有文檔和所有項目。

這種方法會給服務器HTTP任務帶來很多負載,所以最好在安靜的時候運行它。

如果您需要將數據提供給Excel,那麼您必須查看當前代理並查看它是否可以優化。

2

獲取所有內容的最快捷方式可能是導出到DXL,然後讀取您想要的數據的DXL。

以下是一些示例代碼,用於導出數據庫中記錄的第一個選定內容(LotusScript代理)。寫入一個名爲C:\ temp \ data.xml的文件。

Option Public 
Option Declare 

Sub Initialize 
    Dim nsn As New NotesSession 
    Dim ndb As NotesDatabase 
    Dim ndc As NotesDocumentCollection 
    Dim ndo As NotesDocument 
    Dim ndxle As NotesDXLExporter 
    Dim nst As NotesStream 
    On Error Resume Next 

    Set ndb = nsn.CurrentDatabase 
    Set ndc = ndb.UnprocessedDocuments 
    Set ndo = ndc.GetFirstDocument 

    Set nst = nsn.createStream 
    If (Not(nst.Open("c:\temp\DATA.xml"))) Then 
     Print "Open File DATA.xml Failed" 
    End If 
    nst.truncate 

    Set ndxle = nsn.CreateDXLExporter (ndo, nst) 

    ndxle.Convertnotesbitmapstogif = true ' Not always needed. 

    Call ndxle.Process() 
    MsgBox ndxle.Log 
    Call nst.Close() 
End Sub