powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SqlDependency медленно работает
5 сообщений из 5, страница 1 из 1
SqlDependency медленно работает
    #39677339
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую SqlDependency для отслеживания изменений в БД sqlserver 2017, но почему-то событие возникает только секунд через 10-15 после реальных изменений в базе. Такое поведение нормально? У меня есть необходимость отслеживать изменение каждую секунду, если SqlDependency для этого не подходит то предложите каким способом можно отследить изменения которые могут происходить несколько раз в секунду.
...
Рейтинг: 0 / 0
SqlDependency медленно работает
    #39677340
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

как используете, покажите код.
...
Рейтинг: 0 / 0
SqlDependency медленно работает
    #39678484
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
public class SubscriptionsWatcher
{
    private const string connectionString = "123";
 
    public void StartWatching()
    {
        SqlDependency.Stop(connectionString);
        SqlDependency.Start(connectionString);
        ExecuteWatchingQuery();
    }
 
    private void ExecuteWatchingQuery()
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            using (var command = new SqlCommand(
                "dbo.sp_GetChanges", connection))
            {
                var sqlDependency = new SqlDependency(command);
                sqlDependency.OnChange += new OnChangeEventHandler(OnDatabaseChange);
                command.ExecuteReader();
            }
        }
    }
 
    private void OnDatabaseChange(object sender, SqlNotificationEventArgs args)
    {
        SqlNotificationInfo info = args.Info;
        if (SqlNotificationInfo.Insert.Equals(info)
            || SqlNotificationInfo.Update.Equals(info)
            || SqlNotificationInfo.Delete.Equals(info))
        {
            //todo
        }
        ExecuteWatchingQuery();
    }
}
...
Рейтинг: 0 / 0
SqlDependency медленно работает
    #39678529
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Оповещение работает, но вот с непонятной задержкой
...
Рейтинг: 0 / 0
SqlDependency медленно работает
    #39678665
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452Такое поведение нормально?
Вполне, это by design. В документации вполне явно оговорено:
SqlDependency was designed to be used in ASP.NET or middle-tier services where there is a relatively small number of servers having dependencies active against the database. It was not designed for use in client applications, where hundreds or thousands of client computers would have SqlDependency objects set up for a single database server. If you are developing an application where you need reliable sub-second notifications when data changes , review the sections Planning an Efficient Query Notifications Strategy and Alternatives to Query Notifications in the Planning for Notifications topic in SQL Server Books Online.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SqlDependency медленно работает
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]