SqlCacheDependency problem
От: kiwo  
Дата: 10.10.05 10:57
Оценка:
Кто-нибудь пробовал пользовать SqlCacheDependency для инвалидации кэша данных при изменении в базе?. База SQL Server 2005, .NET 2.0 соответственно.

Теоретически, нужно просто использовать следующую конструкцию:
Cache.Insert(Key, DS, New SqlCacheDependency(adapter.SelectCommand))

Но не работает ведь...

Конкретно я использую ставлю еще срок устаревания и приоритет CacheItemPriority.NotRemovable, иначе он автоматом из кэша мою запись выкидывает.

Кто сталкивался, подсобите.
Спасибо
Re: SqlCacheDependency problem
От: Merle Австрия http://rsdn.ru
Дата: 10.10.05 11:29
Оценка:
Здравствуйте, kiwo, Вы писали:

K>Но не работает ведь...

Там очень строгие ограничения на сам запрос, чтобы это работало.
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re: SqlCacheDependency problem
От: AlLucky Беларусь Qulix Systems
Дата: 10.10.05 12:46
Оценка:
Здравствуйте, kiwo, Вы писали:
Ох, старый стал, мало что помню, но для зависимостей сиквел сервера в РТМ версии их надо как-то запускать, может в этом дело.
Если да, то поищите в мсдн статью, что-то наподобие "изменения с версии 2 до РТМ"... Увы, ссылку не могу найти
Sincerely Mine AlLucky Sly
<<Слушаю болтовню коллег...>>
Aleksandr Sly
Re[2]: SqlCacheDependency problem
От: kiwo  
Дата: 11.10.05 06:38
Оценка:
Здравствуйте, Merle, Вы писали:

K>>Но не работает ведь...

M>Там очень строгие ограничения на сам запрос, чтобы это работало.

Какие ограничения? Нигде в MSDN их не видел...
Re[3]: SqlCacheDependency problem
От: Merle Австрия http://rsdn.ru
Дата: 11.10.05 06:57
Оценка: 2 (1)
Здравствуйте, kiwo, Вы писали:

K>Какие ограничения? Нигде в MSDN их не видел...

Плохо смотрел...
SqlCacheDependency работает если:
Вообщем вот примерный список ограничений:

The SELECT statement in the view cannot contain these Transact-SQL syntax elements:

Проблема в том, что механизм с помощю которого сиквел узнает, что данные изменились точно такой же, как и в indexed views, ну и список ограничений примерно такой же..
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re[4]: SqlCacheDependency problem
От: kiwo  
Дата: 11.10.05 07:12
Оценка:
Здравствуйте, Merle, Вы писали:

M>Здравствуйте, kiwo, Вы писали:


M>
  • В запросе перечислены все столбцы, никаких звездочек.
    M>
  • Имена объектов указаны с именем схемы....
    M>[/list]

    Запрос проще не бывает:
    select [ID], [Name] from dbo.CleanTable.

    Значит это
    M>
  • На сервере включен ServiceBroker.
    M>
  • Разрешено выполнение .Net процедур.

    Может подскажешь, как в этом удебиться? Они включены по умолчанию?

    Спасибо большое за помощь
  • Re[5]: SqlCacheDependency problem
    От: Merle Австрия http://rsdn.ru
    Дата: 11.10.05 08:13
    Оценка:
    Здравствуйте, kiwo, Вы писали:

    K>Может подскажешь, как в этом удебиться? Они включены по умолчанию?

    По умолчанию не должны.
    Сервис брокер:
    ALTER DATABASE SET ENABLE_BROKER
    .Net процедуры — не помню, посмотри BOL...
    И еще там могут быть заморочки с правами.
    ... << RSDN@Home 1.1.4 beta 7 rev. 0>>
    Мы уже победили, просто это еще не так заметно...
    Re[6]: SqlCacheDependency problem
    От: kiwo  
    Дата: 11.10.05 08:38
    Оценка:
    Здравствуйте, Merle, Вы писали:

    M>Здравствуйте, kiwo, Вы писали:


    M>Сервис брокер:

    M>ALTER DATABASE SET ENABLE_BROKER

    Брокер был включен по умолчанию.

    M>.Net процедуры — не помню, посмотри BOL...


    Поддержку CLR включил.

    M>И еще там могут быть заморочки с правами.


    Все делаю под sa.

    У все равно — нихт вобла...
    Re[7]: SqlCacheDependency problem
    От: kiwo  
    Дата: 11.10.05 09:38
    Оценка:
    Если настраивать сервер базы как будто он старый, не 2005, то есть через aspnet_regsql и т.д., то все работает. Если пытаюсь использовать dependency ровно для такого же запроса, но к другой таблице или базе, не настроенной aspnet_regsql, то не работает...
    Re[8]: SqlCacheDependency problem
    От: Gollum Россия  
    Дата: 11.10.05 10:38
    Оценка:
    Здравствуйте, kiwo, Вы писали:

    K>Если настраивать сервер базы как будто он старый, не 2005, то есть через aspnet_regsql

    Не понял. Как соотноится "старость" сервера и aspnet_regsql?
    Любая весть изначально благая, просто ты к этому еще не привык
    Eugene Agafonov on the .NET

    Re[9]: SqlCacheDependency problem
    От: kiwo  
    Дата: 11.10.05 12:09
    Оценка:
    Здравствуйте, Gollum, Вы писали:

    G>Не понял. Как соотноится "старость" сервера и aspnet_regsql?


    Утилита aspnet_regsql необходима только для SQL Server 7 и 2000, для 2005 она не нужна.
    С проблемой я разобрался, спасибо.
    Оказалось, что в MSDN ВСЕ примеры на эту тему кривые.
    Используйте http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/querynotification.asp
    Re[10]: SqlCacheDependency problem
    От: Gollum Россия  
    Дата: 11.10.05 12:46
    Оценка: +1
    Здравствуйте, kiwo, Вы писали:

    K>Утилита aspnet_regsql необходима только для SQL Server 7 и 2000, для 2005 она не нужна.

    aspnet_regsql — это создание служебных таблиц аспнета в указанной базе. Как она соотносится с версией сиквела мне не очень ясно.

    http://msdn2.microsoft.com/en-us/library/x28wfk74(en-us,vs.80).aspx
    Исправность аккумулятора можно проверить не выходя из салона, лизнув специально выведенные на приборную доску контакты.
    Eugene Agafonov on the .NET

     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.