Форум » » ­Очень долгий опрос » Ответить

­Очень долгий опрос

AlexZ: Версия 2.81.04 Можно как-то объяснить почему так долго происходит опрос по телефонам Выделено жёлтым. Учитывая настройку в одну минуту. ­

Ответов - 33, стр: 1 2 All

AlexZ: Вы можете сказать какой запрос Вы даёте в базу, я бы проверил прямо в самом Access'е

SiBear: Какого-то единого SQL-запроса не существует. Программа выбирает данные за указанный промежуток времени и расчитывает ежесуточное изменение баланса. Причем отслеживает - чаще баланс увеличивается или уменьшается. В зависимости от того каких изменений больше берет за основу либо те дни, когда баланс уменьшался, либо наоборот. Ведь баланс (колиество баллов и т.д.) может не только уменьшаться, но и увеличиваться. По этой причине, в самом Access-у Вы не сможете выполнить подобный запрос. его просто не существует.

AlexZ: Э-э, не понял :( Совсем ;) А можете на примере объяснить? Например расчёт за последние 5 дней, по одному запросу в сутки и значения следующие 1. 50 2. 40 3. 100 4. 90 5. 80 Как будет вычисляться среднее, какие запросы будут даваться?


SiBear: На этих 5-ти значениях, скорее всего, программа решит не показывать средний расход в день. Но алгоритм будет следующий: Программа увидит, что было 3 уменьшения баланса и только одно увеличение. Сделает вывод, что в норме баланс должен уменьшаться. Поэтому возьмет только те дни, когда были уменьшения и посчитает следующем образом: 50-40=10 100-90=10 90-80=10 итого 10+10+10 = 30 за 3 учитываемых дня. => средний расход в день - 10 рублей. А запрос к базы данных будет только один: выбрать все записи за последние 5 суток...

AlexZ: Так какой запрос будет, чтобы "выбрать все записи за последние 5 суток..."? В точности, можете сказать?

SiBear: На данный момент (времени) этот запрос будет такой (выборка значения за последние 5 дней): select QueryDateTime, balance from Phones where PhoneNumber='9166050844' and QueryDateTime>#2012-06-24 00:00:00# order by QueryDateTime desc вместо 9166050844 подставьте свой номер телефона На моей базе данных (103 мегабайта) он выполняется 16 миллисекунд update: Поставил месяц: #2012-05-29# - время выборки "возросло" до 35 миллисекунд.

AlexZ: В Access'е запрос на 30 дней отрабатывает мгновенно - время не мерял, но моргнуть не успеваю :). Access у меня из Office 2010. А как Вы замеряли время с миллисекундами? И это время из Access'а или из программы?

SiBear: Да, это время я замерял программой

AlexZ: В дебагере или я тоже могу как-то померять?

SiBear: Нет, не в дебагере. Просто выполнял запрос из сторонней программы (что-то вроде SQL Manager-а самописного). Он, в том числе, показывает время исполнения запроса

климтс: раздел сайта справка по написанию плагинов "истчечения " Поставьте Орфус :-)

климтс: что-что в авторстве? :-P

AlexZ: Поставил для MobileBalance.exe совместимость с Vista и стало работать быстрее. В среднем за полторы минуты справляется. Хотя всё равно дольше чем с чистой базой.



полная версия страницы