metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-03-06 08:58 pm

Очередной срачъ, у zabivator-а

Я всегда думал, что может заставить людей не использовать связываемые параметры в запросах и извращаться с самостоятельной конкатенацией запросов, проверкой на sql-инъекции, эскейпингом, обработкой локалей и форматов и прочим садомазохизмом при работе с СУБД.
Оказывается, bind-параметры влияют на производительность.

То, что он формально прав, и что, зная значения параметров, СУБД может выбрать более оптимальный план, не меняет того факта, что это сродни ассемблерным вставкам и экономии на количестве переменных на стеке при разработке опердени, чтобы "работало быстрее".

Я счас поискал в гугле про подобные проблемы - у людей с OSM подобная фигня с бинд-параметрами в Postgresql вылезла. Но это на таблице в 500 млн записей и очень хитрожопном запросе. Предполагаю, что с такими объемами на обычной опердени жопа начнется намного раньше, чем разница между планами хоть как-то повлияет.
Не говоря уже о том, что правильный план можно прибить гвоздями, как минимум в Firebird так точно и вообще не мучится.

[identity profile] zamotivator.livejournal.com 2010-03-06 11:18 pm (UTC)(link)
При такой аргументации автоматизация бизнес-процессов такими монстрами, как шарепойнт или аксапта, должна выглядеть... я даже не знаю, чем :)))
Понимаете, у меня просто профессиональная деформация =))) Когда оптимизируешь движок на тему эффективного выполнения запросов, sharepoint и ORM'ы выглядят издевательством над твоей работой ))))

[identity profile] theiced.livejournal.com 2010-03-07 05:38 am (UTC)(link)
ты грузишься и вообще целиком не прав. скорость-хуёрость. бинд _гарантированно_ (ну - 99.999999999%) отловит все возможные проблемы. твоё местечковое решение может в каком нить месте не сработать или забудешь заэскэйпить или ещё какая хуета случится. и толку от твоих более быстрых запросов если база наебнёццо или кредитки все попиздят?

[identity profile] theiced.livejournal.com 2010-03-07 02:21 pm (UTC)(link)
вопрос значит закрыт?

[identity profile] zamotivator.livejournal.com 2010-03-07 02:25 pm (UTC)(link)
В проблеме, что вызвала мои вопросы в исходном посте? Вполне.

[identity profile] theiced.livejournal.com 2010-03-07 02:35 pm (UTC)(link)
так не было проблемы ёпта.

[identity profile] zamotivator.livejournal.com 2010-03-07 02:39 pm (UTC)(link)
Была проблема - уязвимость sql-injection.
Решается bind-параметрами.

[identity profile] theiced.livejournal.com 2010-03-07 02:40 pm (UTC)(link)
но про бинды ты знал, просто стал оптимизировать там где оптимизировать низя.

[identity profile] zamotivator.livejournal.com 2010-03-07 03:35 pm (UTC)(link)
Нет, я всего лишь захотел узнать альтернативы.

[identity profile] ennor.livejournal.com 2010-03-07 11:14 am (UTC)(link)
Ну, в разных ситуациях бывают разные приоритеты - может быть скорость работы, а может быть скорость разработки. :)

[identity profile] theiced.livejournal.com 2010-03-07 02:20 pm (UTC)(link)
во всех случаях приоритет один - надёжность. всё остальное похуй если нет надёжности.

[identity profile] ennor.livejournal.com 2010-03-07 03:12 pm (UTC)(link)
Скажи это владельцу бизнеса, мальчик. Мне ебать моск не надо.

[identity profile] theiced.livejournal.com 2010-03-07 09:50 pm (UTC)(link)
мальчуган, надёжность неважна только если владелец бизнеса нии говна и торфа. в остальных случаях это даже не обсуждается.

[identity profile] golosptic.livejournal.com 2010-03-08 01:51 pm (UTC)(link)
Вы не правы, к сожалению.
Жизнь несколько неприятнее, чем теории.