Max (bugabuga) wrote,
Max
bugabuga

  • Mood:

Мда. Сижу, можно сказать, в башне из слоновьей мамонтовой кости и гляжу вниз на ров, в котором плещутся крокодилы.
Очередной прикол от крокодилов -- общение с базой данных в стиле женщины из юморески (открыла кошёлку, вынула сумочку, закрыла кошёлку, открыла сумочку, вынула косметичку, закрыла сумочку, открыла кошёлку, положила туда сумочку, закрыла кошёлку, открыла косметичку, вынула кошелёк, закрыла косметичку, открыла кошёлку, достала сумочку, закрыла кошёлку, открыла сумочку, положила косметичку, закрыла сумочку ... ... ... ... ...). Вот по такому-же алгоритму крокодилы ведут выбор данных :) открыли соединение, кинули в базу данных запросом, прочитали ответ, закрыли соединение, открыли соединение, кинули в базу данных слегка изменённым запросом, прочитали ответ, закрыли соединение...
Итого для изготовления одного графика полторы ТЫСЯЧИ запросов. Построенных на лету из кусочков строк с результатами запроса в другую таблицу. В которой живёт несколько миллионов записей, не проиндексированных (сюрприз!) по полю, по которому идёт выбор данных.

Волосы встали дыбом на всю длинну и не укладывались до конца рабочего дня. В ответ на вопрос "А ЗАЧЕМ?!" категорично сказали, что иначе никак ("потому, что выборка данных из таблицы А зависит от данных в таблице Б"). Нарисовал на доске запрос, в который легко свернулась вся схема, ушёл горевать под грибок в садик.

Или я не понимаю чего-то чрезвычайно грандиозного, или это наверняка приведёт к очередной "оптимизации скорости выполнения запросов в 20 раз" :) (в прошлый раз это был Prefetch :) )

Надо будет пересмотреть свой старый код -- наверняка такие-же ужасы найду :)
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 8 comments