Форум сайта python.su
Таблица:
MainTable
id, fam, im, ot, money, code, type, mark, dateOfday, fieldN1, fielsN2, fieldN3… fieldNN
Для начала я создал представление, которое выбирает только те поля, которые нужны для сводной таблицы, а также попадают в нужный диапазон дат
CREATE VIEW myView AS SELECT id, money, code, type, mark FROM MyTable WHERE date dateOfday >= “2014-01-01” and dateOfday <= “2014-12-12”
Затем начинается выборка из
mylist = [ [12, 45], [34, 67, 89], [90, 22, 55, 67]... ] for i mylist: spisok = "(" for ii in i: spisok = spisok + "code = " + ii + " OR " spisok = spisok[0:len(spisok)-4] + ")" SQLtext = "SELECT sum(money) FROM myView WHERE " + spisok cursor.execute(SQLtext) ...
Офлайн
Очень Вас жалко. Вам реально нечем заняться. Возьмите алхимию и прекратите своим мучения раз и навсегда
Офлайн
Прежде чем что-то написать, стоило бы немножко подумать, как ваши слова могут быть восприняты.
Мне очень есть чем заняться, поэтому в данный момент нет времени на изучение алхимии.
По существу вопроса можете что-то сказать?
Офлайн
Plutoможет у вас в коде так и прописано все? может код внимательней посмотреть
что на каждый cursor.execute каждый раз делается сперва выборка для myView,
Офлайн
Создал временную таблицу вместо представления myView и скорость возросла многократно!
http://www.sqlite.org/lang_createtable.html
Офлайн
Я всегда думаю, прежде чем написать.
Тут как в мультфильме. “Лучше час потратить, потом за 5 минут долететь”
Если для Вас почитать 1-2 статьи по этому ОРМ - неподъемная задача, тогда мучайтесь дальше.
P.S. Читал все Ваши последние вопросы по БД. Все они решаются алхимией на ура. О чем я уже неоднократно Вам писал. Нравится заниматься тантрическим сексом и уйма времени на разгадывания задач, которые Вы себе назадавали (видно по постам) - я Вам мешать не буду
Офлайн
4kpt_IIМне так не кажется.
Я всегда думаю, прежде чем написать.
Офлайн
Да Вы уже времени на разгадывание загадок потратили больше, чем потратили бы на алхимию. Причем потратили больше в разы. Да и решения получили далеко не универсальные… Поэтому и напрашивается такое замечание.
P.S. Я пас. Не буду ничего Вам доказывать и разубеждать. Удачи
Отредактировано 4kpt_II (Апрель 18, 2014 15:14:12)
Офлайн
Plutoсоставь команду вручную и проверь её скорость
На самом деле формирование SQLtext ещё более заковыристое, там не один mylist, и не один вложенный цикл, но это не важно.
Офлайн
py.user.nextВсё уже решено.
составь команду вручную и проверь её скорость
Офлайн