|
Sybase
|
|
|
|
|
Продукты
|
|
|
|
|
Сообщества
|
|
|
|
|
Меню
|
|
|
|
|
Вход
|
|
|
|
|
Рассылка
|
|
|
|
|
Статистика
|
|
|
|
|
Новости и статьи
|
Для ASA вышел EBF 3274Автор: ASCRUS
( Thursday 30 March 2006 07:10:59 )
Добавления:
В запросах теперь можно использовать новых хинт "READPAST", позволящий указать игнорирование обработки заблокированных записей во время
получения данных с указанной таблицы. Как и "READUNCOMMITTED", данный хинт позволит не ждать окончания снятия блокировок с записей, однако здесь
будут возвращены не все, а только подтвержденные записи и пропущены те, которые на момент выполнения запроса изменялись.
Например в таблице Table1 есть 2 записи и из них одна изменяется конкурирующей сессией, т.е. является заблокированной. Тогда:
SELECT *
FROM Table1 WITH (READUNCOMMITTED)
-- Вернется 2 записи
SELECT *
FROM Table1 WITH (READCOMMITTED)
-- ожидание снятия блокировки с записи конкурирующей сессией
SELECT *
FROM Table1 WITH (READPAST)
-- Вернется 1 запись
Новый хинт будет удобней всего использовать для обработки таблиц, для которых интенсивно вставляются и изменяются записи
конкурирующими сессиями и требуется во время выполнения запроса считать только подтвержденные записи, не ожидая снятия блокировок
и не блокируя пишущие сессии. Однако стоит обратить внимание, что данный хинт будет всегда давать нестабильный курсор, где
кол-во возвращенных записей может изменяться в зависимости от кол-ва заблокированных записей конкурирующими сессиями на момент
выполнения запроса. Так же данный хинт будет удобно использовать в случаях, когда есть таблица, в которой записи только
добавляются, у ней есть поле TIMESTAMP, хранящее время создания записи и требуется получить данные на указанное время. Ранее для
выполнения такого запроса в целях обхода блокировок конкурирующих транзакций, пришлось бы строить индекс на поле TIMESTAMP, однако
теперь, с указанием в запросе хинта READPAST, необходимость строить индекс отпадает, так как новые вставляемые записи будут просто
игнорированы при выполнении запроса.
Исправления:
Устранен крах сервера при работе веб-сервисов (передача неправильных заголовков, множество интенсивных обращений к сервисам).
Исправлено поведение оптимизатора (неправильный выбор плана при соединении таблицы с малым кол-вом записей с подзапросом,
неправильная оценка эффективности использования кластерного ключа таблицы, большинство данных которой находится в кэше).
Ознакомитьcя с полной информацией по EBF можно на
sybase.com. |
[ Назад ] |
|
|
|
|
|
Copyright©2005 . Все права защищены.
|