2014-11-21 39 views
2

我連接MATLAB到沃頓研究數據服務數據庫Compustat和正在運行一個簡單的查詢MATLAB數據庫取()爲WRDS普數據庫中花費的時間太長

WRDS_Connect 

setdbprefs('FetchInBatches','yes') 
query = exec(WRDS, ['select gvkey from COMP.FUNDA where fyear = 2000 order by gvkey asc']); 
result = fetch(query); 
result.data 

WRDS_Connect簡單地建立使用JDBC驅動程序WRDS服務器的連接和

WRDS = database(instance, username, password, serverAddress); 

該查詢不是太大,給我27000行數據。然而它需要很長時間。分析顯示,這27000行大約需要5分鐘。 我想實際進行更廣泛的查詢,但不應該花這麼長時間。

有什麼我可以做的,以加快速度?我附上了剖析的截圖。 Profiling Screenshot

感謝您的幫助!

+0

儘量不要用SQL排序應用selction /過濾器,但以後做在MATLAB您導入了數據。 – Oleg 2015-06-12 18:44:26

回答

0

如果你有博士acount或以上你可以改變接近一點點。

我開發了一個API,它可以讓你從WRDS UNIX服務器下載數據集。這是使用和更快。如果你有問題,請告訴我。

wrds_install 
w = wrds('username'); 
w.sas2csv('COMP.FUNDA'); 

該數據將被保存在.\data\COMP.FUNDA.zip

然後,您可以:

  1. 解壓表
  2. 進口它readtable()
  3. 在Matlab
+0

你好,@ Oleg,我想用鏈接中顯示的包來連接到matlab中的wrds,但是每次運行wrds_install;和w = wrds('用戶名','密碼'),我的matlab(2015Ra)在筆記本電腦立即拼湊。我不知道原因。 – Shine 2016-03-01 13:48:20

+0

@Shine您可以在github上提交一個問題,提供儘可能多的細節來重現問題(操作系統,代碼示例,如果您在崩潰前在命令窗口中打印某些內容,操作系統發出崩潰報告)? – Oleg 2016-03-01 13:58:03

+0

謝謝。我註冊並在那裏提出一個新問題。 – Shine 2016-03-01 14:25:11

相關問題