我使用jaydebeapi鍵(Mac OS X)來查詢Netezza公司數據庫,並執行一些快速/骯髒的時機:Python的SQL查詢性能
t0 = time.time()
curs.execute('''select * from table1;''')
print time.time() - t0
我創建了表自己,它包含65萬行9列(整數和日期)。
當我運行上面的命令大約需要1.3分鐘完成(平均超過10次運行)。
然後,當我試圖獲取數據:
t0 = time.time()
curs.execute('''select * from table1;''')
row = curs.fetchone()
while row is not None:
row = curs.fetchone()
print time.time() - t0
大約需要10分鐘即可完成(平均超過10次)。
現在,當我使用WinSQL(Windows 7,ODBC)運行相同的SQL查詢時,大約需要3分鐘才能返回數據。我似乎無法弄清楚它爲什麼要花更長的時間在Python中,我不知道如何或從哪裏開始尋找。
你在使用什麼驅動程序?它有任何設置嗎?順便說一句,你真的需要完全用Python獲取和處理650k行,沒有任何SQL? – 9000
對於Mac OS X,它的JDBC驅動程序(據我所知,Mac上不存在ODBC)和Windows 7的ODBC驅動程序。不知道這是否回答您的問題,但我將使用Pandas進行切片和切塊。 – slaw
如果您打算使用熊貓,您可能只需要將數據直接讀入Pandas DF。看到這個例子:http://stackoverflow.com/a/12060886/1216837 – ACV