我正在将MATLAB连接到沃顿研究数据服务COMPUSTAT数据库并运行一个简单的查询
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分钟。 我想实际上进行更广泛的查询,但不应该花这么长时间。
我能做些什么来加快速度吗?我附上了剖析的截图。
感谢您的帮助!
答案 0 :(得分:0)
如果您拥有博士学位或以上,您可以稍微改变一下。
我开发了一个API,允许您从WRDS unix服务器下载数据集。 简单使用更快。
在https://github.com/okomarov/wrds上查看,如果您有问题,请告诉我。
wrds_install
w = wrds('username');
w.sas2csv('COMP.FUNDA');
数据将保存在.\data\COMP.FUNDA.zip
。
然后你可以:
readtable()