Mar. 6th, 2010

metaclass: (Default)
Почему-то в PostgreSQL тип чарсета WIN1251 имеет алиас WIN, WIN866 - алиас ALT и KOI8R - KOI8. Это что, кто-то из наших окопался среди разработчиков и сделал "как нам проще будет"?

PS: А, еще обнаружил странную вещь - забыл в клиенте поставить тип client_encoding и начал туда долбить win1251 строки. Так оно сломалось только на какой-то записи далеко в середине на фразе "предъявить кредитную карточку", т.е. до того все нормально и читабельно вставилось.
metaclass: (Default)
Я всегда думал, что может заставить людей не использовать связываемые параметры в запросах и извращаться с самостоятельной конкатенацией запросов, проверкой на sql-инъекции, эскейпингом, обработкой локалей и форматов и прочим садомазохизмом при работе с СУБД.
Оказывается, bind-параметры влияют на производительность.

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

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

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 9th, 2025 03:22 am
Powered by Dreamwidth Studios