tyaps_asp, posts by tag: sql server - LiveJournal (original) (raw)

Умышленные блокировки в SQL Server with (tablockx) [Sep. 24th, 2010|05:08 pm]Программирование в ASP.Net
[**Tags**|sql, sql server]Понадобилось решить задачу типаselect @max_id=max(id)+1 from t1insert into @t1 (id) values (@max_id)Поле id при этом не является автоинкрементом. Я прикинул, что шанс того, что 2 пользователя одновременно не выполнят эту инструкцию, и забил, но как обычно это бывает - все случилось. В день один-два раза я получал ошибку Duplicate Key.Решается все тем, что я при получении max_id делаю умышленную эксклюзивную блокировку на таблицуbegin transelect @max_id=max(id)+1 from t1 with (tablockx)insert into @t1 (id) values (@max_id)commit tranМожно играться с видами блокировок - на таблицу, на строку и пр.Теперь, второму из одновременных участников придется подождать немножко, перед тем как получить @max_id, и он получит верный результат.Логи показывают, что ошибка Duplicate Key не повторялась больше.
link post comment
Подключить Русский язык к FullText Search в MS SQL 2005 [Nov. 24th, 2008|05:12 pm]Программирование в ASP.Net
[**Tags**|administration, full-text search, sql, sql server]http://support.microsoft.com/kb/908441- и вроде работает.Не забываем, что после подключения русского языка, надо в полнотекстово-индексируемом столбце указать Language - Русский и заново сделать популяцию индекса.
link post comment
SQL 2005 [Feb. 8th, 2008|01:59 pm]Программирование в ASP.Net
[**Tags**|administration, sql server]Начинаю осваивать SQL 2005. Много приятного в SQL-конструкциях.Графическая оболочка в духе VS 2005.Дополнительные фичи, которые пока не нужны.И первое ой. Если имеешь дело с Developer Edition, то после установки удаленно к нему просто так не законнектишься. Читать и делать, как здесь:http://support.microsoft.com/kb/914277/ru
link post comment
Расшаривание сессии между веб-приложениями в ASP.NET [Jul. 27th, 2007|01:17 pm]Программирование в ASP.Net
[**Tags**|asp.net, sql server, web, webdev]Достаточно известная проблема в ASP.NET - это невозможность расшарить сессию между двумя разными веб-приложениямия. Например, это необходимо cделать, когда сайт имеет http и https версии, и в определенный момент нужен переход на версию с SSL этого сайта, или когда у приложения несколько поддоменов, на каждом из которых разные сайты, но аутентификация одна (крупные порталы)Существует несколько решений - создавать сайт в физической подпапке другого сайта (но здесь имеются свои незадачи), разработка Custom SQL Provider, решения на основе веб-сервиса и т.д.В своей практике я использую другой, быстрый и надежный вариант, помогающий решить проблему расшаривания сессии. Поскольку я храню сессию для всех своих приложений на live servers в БД (самый безопасный вариант - просто выставляем mode="SQLServer" в конфиге для sessionState, не зависит от памяти, перезапуска приложения и т.д) - то все, что необходимо было сделать - это разобраться, как сессия хранится в SQL Server. Решение проблемы расшаривания сессии стал хак одной системной SQL процедуры ( смотреть какCollapse )
link 1 comment|post comment
navigation
[ viewing | most recent entries ]