Python медленно выполняет итерацию по большому списку

В настоящее время я выбираю большой список строк из базы данных с помощью pyodbc. Затем результат копируется в большой список, а затем я пытаюсь перебрать список. Прежде чем я откажусь от python и попытаюсь создать его на C #, я хотел знать, что я делаю неправильно.

clientItems.execute("Select ids from largetable where year =?", year);
allIDRows = clientItemsCursor.fetchall() #takes maybe 8 seconds.

for clientItemrow in allIDRows:
    aID = str(clientItemRow[0])
    # Do something with str -- Removed because I was trying to determine what was slow
    count = count+1

Дополнительная информация:

  • Цикл for в настоящее время выполняется примерно со скоростью 5 циклов в секунду, и мне это кажется безумно медленным.
  • Всего выбрано ~ 489 000 строк.
  • Машина, на которой он работает, имеет много ОЗУ и ЦП. Кажется, он работает только с одним или двумя ядрами, а оперативная память составляет 1,72 ГБ из 4 ГБ.

Кто-нибудь может сказать мне, что не так? Скрипты работают так медленно?

Спасибо

10
задан Matt Alcock 22 February 2012 в 22:56
поделиться