2012-09-10 67 views
0

我有一個Python腳本,可以將數據從數據庫中提取到CSV文件中。我正在使用pyodbc訪問數據庫並執行查詢。我還使用csv.writer輸出查詢到一個文件:來自數據庫的異步csv.writer

with open(source_filename, 'w', newline='') as source_file: 
    csv.writer(source_file, quoting=csv.QUOTE_NONNUMERIC).writerows(db_cursor) 

因爲腳本輸出數據庫中的所有表我想通過後臺處理,而不是一前一後,加快提取其他。有沒有辦法在Python中做到這一點?

我嘗試使用多處理,但無法通過一些酸洗錯誤。

感謝

+0

你需要非常小心的線程共享資源... –

回答

2

Multithreading是一種重量更輕的方式來實現並行,但由於文件說,「線程是去耦哪些不是順序依賴任務的技術。」您需要知道您的依賴關係在何處才能決定如何並行執行。將多個查詢並行提交給由單個磁盤存儲支持的數據庫並不明顯會以比順序提交結果更快的速度返回結果。

0

     您必須創建多線程進程;原始進程啓動一個新線程,它執行數據庫訪問和文件寫入,而原始進程繼續其業務。
       此外,不是創建訪問數據庫以檢索相同數據的多個進程,而是使用單個後臺進程。它會更安全,更快速,更易於調試。