Такой вопрос возникает у любого разработчика многопользовательских приложений на основе сервера
Oracle. К сожалению, точно ответить на вопрос, какой именно пользователь заблокировал конкретную запись конкретной таблицы не представляется возможным. По крайней мере, автору такой способ неизвестен. На этот вопрос можно ответить только с некоторой долей вероятности. К сожалению, сервер Oracle не предоставляет информации о том, какая сессия заблокировала запись в таблице. Такая информация может быть получена только для рассматриваемой таблицы, а не конкретной записи. Но все же посмотрим, что можно получить в практическом смысле для разработки наших приложений.
(далее...)
Временные таблицы Oracle (
global temporary table) это хороший инструмент для быстрого выполнения сложных вычислительных операций. Как следует из их названия это действительно таблицы, данные в которых хранятся временно, а именно существуют только во время жизни сессии пользователя. Операции с временными таблицами могут выполняться намного быстрее операций с обычными таблицами.
(далее...)
В этой статье поговорим о различных методах сортировки индексных массивов.
(далее...)
Известно, что
сервер Oracle способен выполнять
Java код, что может добавить определенные преимущества вашему приложению. Однако многие разработчики не используют эту возможность по разным причинам. Одним из основных является то обстоятельство, что
PL/SQL это очень развитый язык программирования и, самое главное, он напрямую поддерживает доступ к данным через встроенный
SQL. В этой связи применение Java на стороне сервера не выглядит очень оправданным. Однако, если требуется выполнение большого количества математических операций, то наш взор может быть обращен в сторону Java с вопросом, а не позволит ли код на Java выполнять математические и другие операции, не связанные с обращением напрямую к базе данных, быстрее, чем аналогичный код на PL/SQL? Если это так, то некоторые вычислительные функции есть смысл переписать на Java, ускорив выполнение критичных участков кода наших приложений.
(далее...)
Язык программирования
PL/SQL, предназначенный для программирования серверной части приложений, является очень мощным инструментов в умелых руках. Одним из интереснейших инструментов эффективного программирования являются такие представители коллекций PL/SQL как
индексные таблицы, или
ассоциативные массивы. Одним из основных применений индексных таблиц, на мой взгляд, является кэширование справочных таблиц приложений для быстрого доступа к часто используемым данным. Быстрый доступ будет автоматически обеспечиваться благодаря поиску записи в индексной таблице по индексному ключу. В этом случае поиск будет выполняться в памяти максимально быстро.
(далее...)
Часто может возникнуть задача упаковки больших объектов Oracle CLOB, BLOB для их более компактного хранения или для иных целей. При этом может потребоваться считывать упакованные большие объекты CLOB, BLOB в клиентских приложениях на Java. Упаковывать же большие объекты желательно на стороне сервера на PL/SQL.
(далее...)
В данной статье речь пойдет о
блокировках при использовании неиндексированных внешних ключей. Тема известная для разработчиков, однако, на мой взгляд, существует несколько подводных камней, на которые часто не обращают внимание многие разработчики, вследствие чего могут возникать очень серьезные проблемы в многопользовательской среде.
(далее...)
На практике часто требуется генерировать случайные числа в заданном диапазоне. Рассмотрим наиболее естественный способ сделать это на
PL/SQL.
(далее...)
Необходимо написать
SQL запрос, который выводит значение курса валюты на заданную дату. Такой вопрос может быть задан на собеседовании при приеме на работу в качестве разработчика баз данных. Вопрос не столь прост, как может показаться.
(далее...)
В этой статье предлагается простой и эффективный способ отладки серверной и клиентской частей приложений
Oracle. Способ не претендует на полноту и не призван заменить собой известные способы отладки, однако может быть полезен при отладке бизнес логики приложений.
(далее...)
При разработке прикладных систем для удобства работы часто требуется запоминать контекст, в котором работал пользователь. Например, пользователь, работая с формой, выбирает некоторые фильтры, которые ограничивают данные этой формы.
(далее...)
Удаление дубликатов строк в таблице – популярный вопрос на собеседованиях, ответ на который необходимо знать каждому разработчику, несмотря на то, что в правильно спроектированной базе данных такая задача возникать не должна в принципе. Этот популярный вопрос может поставить в тупик даже некоторых опытных разработчиков именно вследствие того, что задача редко возникает в реальных системах.
(далее...)