Pull to refresh
24
0
Алексей Скахин @pihel

Oracle performance specialist

Send message
А сообщество PG не хочет выпустить книгу по стоимостному оптимизатору? Я бы с удовольствием почитал.
П.с. прошлая статья, почему то, прошла мимо, хотя читаю все из топика базы данных.
А что с Oracle запросом? Он остался в прежнем виде, с ним не было проблем?
«Основы стоимостной оптимизации» — автор Дж. Льюис
Вот наше все, для понимания стоимостной оптимизации (хоть там и про oracle)
Искал в документации по MSSQL, где было бы сказано про NULL и index, чтот нигде не написано.
В Oracle строго оговорено, что по умолчанию NULL не попадает в индекс.
В индексе нет NULL значении, так что он будет ускорять арифметические операции.
В Oracle будет fast full scan index при полном сканировании или range scan при частичном без физического обращения к таблице.
Спасибо за ответ.
Я проверял через online сервис ABBYY, текст и цифры распознаются довольно хорошо. В тексте бывают ошибки, но его проще вручную поправить, главное чтоб число позиций и цены соответствовало чеку.
Мне показалось проблема в том, что все чеки разные: товары, итоги и названия торговых точек раскиданы у кого как, хотя, кажется, все стараются двигаться к одному стандарту.

П.с. выложил примеры которые насобирал за некоторое время: homebuh.pro/api/ocr/files/demo.homebuh.pro/index.php
ZlodeiBaal, подскажите, а задача распознавания чеков по сложности схожа с задачей по ценникам?
Который год хочу заняться, но опыта в этом 0. Не знаю, стоит ли браться.
> Новое руководство не планирует никакого сокращения штата после слияния.
Смешно это слышать бывшему работнику ГК Систематика.
Странная, конечно, конструкция «ON CONFLICT», лучше уж MERGE использовать, если хочется сделать и insert и update (имхо со стороны разработчика oracle)
Я не понял, в конце вы все таки остановились на варианте с одной таблицей контактов? Причина была только в размере бд? Вы замерили разность скорости выборки из разных таблиц или из одной?
Можно еще было хранить каждый контакт в своей бд, получилось бы своего рода партиционирование на физическом уровне. Осталась бы только проблема с вытаскиванием последнего сообщения при старте.
Есть что-нить по базам данных? По Oracle или Postgree?
Я даже где-то понимаю оракловцев мужественно терпящих висящий с 90-х годов тикет про это событие.

Почему бы им не сделать 2 события: beforecommit — ошибка бы откатывала и aftercommit — ошибка не откатывала.
Вообще хватило бы и одного aftercommit.
Спасибо за ответ, про commit я действительно забыл. Но решения через dbms_job.submit очень интересное, надо записать в блокнотик :)
С OCN не работал, а нельзя для этих целей использовать триггеры на таблицах? В триггере также можно вызывать процедуру или послать сообщение по сети DBMS_TCP. Какие тут минусы?
Такую бы конференцию, да по Oracle.
Тоже давно заметил, что в фоне запущена служба Я.Метро, даже если приложение выключено. Пришлось снести приложение, хотя бы в целях экономии ресурсов телефона.
Обнаружил в базе один из моих email, почта не основная, была зарегана на всякий случай пару лет назад. Использовался только для пересылки почты на gmail, больше нигде пароль не вводил.
Так что ввод пароля на левом сайте исключаю.
Добавлю еще использование индексов на временных (сессионных) таблицах в ORACLE бессмысленно. Индекс можно создать, но статистика по нему не будет собираться, значит оптимизатор его не будет использовать.
Есть вариант подсунуть статистику от аналогичной не временной таблицы, но это как то уж больно запарно.
Проблему можно решить, прибегая к временным таблицам, т.е. результат тяжелого запроса предварительно положить во временную таблицу и далее использовать.

Кстати, ORACLE, в данном случае, чаще всего сам создает временную таблицу, ну или ему можно подсказать хинтом /*+ materialize */ и преимущество использования WITH будет очевидно.
Лучше бы все чеки были строго одинаковые, как бы это упростило задачу автоматизированного распознавания.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity