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

как используете, покажите код.
...
Рейтинг: 0 / 0
24.07.2018, 18:05
    #39678484
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlDependency медленно работает
Код: 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
24.07.2018, 19:17
    #39678529
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlDependency медленно работает
skyANA,

Оповещение работает, но вот с непонятной задержкой
...
Рейтинг: 0 / 0
25.07.2018, 06:09
    #39678665
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SqlDependency медленно работает
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
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SqlDependency медленно работает / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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