|
|
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Случается такая неприятность: Работают с базой несколько касс и переодически (отчеты по кассам делаются не реже раза в день) в отчете кассы 1 вылазит запись относящаяся к кассе 2 (номера касс взяты для примера) и она же вылазит в отчете по кассе 2, запись относящаяся к кассе 1 бесследно исчезает. Все это естественно отлавливается соответствующими запросами и из локальных баз востанавливается, но этот геморой несколько нарушает наш покой, тем более, что иногда база пытается завалиться, возможно даже именно по этой причине. Мы потихоньку грешим на индексы но не уверены. Есть идеи, уважаемые? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2004, 18:51 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Подозреваю, что заголовок топика вводит в заблуждение. Юзер, безусловно, видит именно то, что там написано: проблему в отчете. Однако на самом деле данные каким-то образом портятся в таблицах гораздо раньше, чем запускается отчет. Это же сказано и в вопросе: "Все это естественно отлавливается соответствующими запросами и из локальных баз востанавливается". Так что задача - понять, в какой момент портятся данные. Задача не из легких. Для начала можно предложить устроить трейсинг. Это тем более сложно, что нужно следить за всей базой, ибо заранее неизвестно, какая запись испортится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2004, 20:05 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
А как этот трейсинг устроить? Еще одна подробность. Когда делаю после этого обычный Repair, бывает все проходит нормально, а бывает ругается на неуникальность первичного ключа, приходится сначала удалять ключ, потом восстанавливать, чистить и опять индексировать. Где-то раз в 2 недели. Задолбало... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 11:52 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
авторЕще одна подробность. Когда делаю после этого обычный Repair, бывает все проходит нормально, а бывает ругается на неуникальность первичного ключа, приходится сначала удалять ключ, потом восстанавливать, чистить и опять индексировать а вот это странно - поддержка целостности уникальных ключей - задача целиком аксессовская, не зависящая от программирования. может патч для JET какой или извесная тема с плохими сетевыми карточками добро пожаловать на MSDE )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 12:17 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Да рушится база, рушится. Индексы слетают. Отсюда и неправильные выборки по слетевшим индексам, и ругань при восстановлении (если уникальный индекс просрался). Я такое последний раз видел в аксесе 2.0, но не факт, что в последующих версиях что-то исправили. Хотя все пропатчить не помешает. авторв отчете кассы 1 вылазит запись относящаяся к кассе 2 (номера касс взяты для примера) и она же вылазит в отчете по кассе 2, запись относящаяся к кассе 1 бесследно исчезает Попробуй в этой записи идентификатор кассы руками проапдейтить на то же самое значение. Если слетел неуникальный индекс, то при обновлении записи произойдет переиндексация этой записи, и выборка должна будет вылечиться. Но это так... на случай если Repair делать некогда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 12:51 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Где-то месяц назад сделали почти полный апгрейд по сетевым картам (но на кассовых компах заменили все 6 штук). А недавно опять то же самое... И в том то и бяка, что до repair записи с повторяющимися ключами не видны, а пытаются всплыть при восстановлении. И внешние проявления бывают разные: один раз при открытии таблицы визуально не видны записи начиная с какой-то, при этом клиенты спокойно добавляют записи и они не теряются после восстановления. То аксес ругается когда я запросом пытаюсь вытащить какую-то запись, хотя в таблице я ее вижу. И пр. закавыки. Бывает и без них - все как бы нормально. Но! Есть один общий симптом. SELECT rd.id, rd.kas FROM rd WHERE kas=1 возвращает 100 1 105 1 ... 208 1 а SELECT rd.id, rd.kas FROM rd WHERE kas=2 возвращает 99 2 103 2 105 1 ... 210 2 Вот там где влезает запись с единицей и есть сбой, и пропадает реальная запись от кассы №2. Владимир Саныч, так что Вы там говорили насчет трейсинга? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 12:58 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Вот ты эту запись ("105 1") как только найдешь - так сразу и апдейти (на те же самые "105 1") Если выборка начнет правильно работать - значит индекс (по rd.kas) упал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 13:03 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
я повторяю: в 97(!!!) пропадала куча записей по каскаду из-за слетевших индексов. Видел 1 раз. Восстанавливал из бекапа. Сопуствующее условие - сетевики что-то там в тот день мудрили с серверами, и не всех сразу выгнали. С тех пор ни разу не повторялось (именно такое разрушение). Хотя схема данных (в части именно этой каскадной связи) не менялась. Не вредно провести не только репейр, но и полный импорт данных в другой файл. (пересоздать системные таблицы). Может там какой глюк затесался. Это бывает. Но вообще-то ищи причину в сети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 13:14 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Но почему упал? 5 лет не падал а тут западал. И как отследить, ЧТО его валит? Касс 6 штук и закономерности нет, т.е. любая может перебивать любую. Может размеры базы и структура? Сжатая 500-600 мег, а в ней только 2 таблицы - rd, которая валится, записей поменьше (900тыс), полей и индесов побольше (46полей/20индексов) и ar, побольше записей (6млн), но полей и индексов меньше (6/4) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 13:16 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Ни хрена себе...А чего не архивируете-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 13:21 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Сейчас не об этом. Вообще то будем перетаскивать все на MS SQL, но это будет месяца через 3. Дожить бы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 13:25 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
авторМожет размеры базы и структура? Сжатая 500-600 мег, а в ней только 2 таблицы - rd, которая валится, записей поменьше (900тыс), полей и индесов побольше (46полей/20индексов) и ar, побольше записей (6млн), но полей и индексов меньше (6/4) Ну вот у меня примерно на тех же размерах такие же беды и приключались. Плохо аксесовским индексам становится в таких базах. А причины... причины любые. Если от рабочего места независит - ищи ближе к серверу. Свичи, диски, SCSI-контроллеры и прочее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 13:31 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Архивируй данные, иначе до MS SQL можешь не дожить :) Насколько я помню, процедура восстановления/сжатия таких баз занимает по нескольку часов. Собственно поэтому и стали аварийно записи лечить (апдейтом взглюкнувшего индексированного поля), ибо не всегда было возможно работу фирмы на пару часов стопить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 13:34 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
авторВладимир Саныч, так что Вы там говорили насчет трейсинга? Мы говорили, что задача архисложная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 13:40 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Прости, Владимир Саныч. я как-то не усек что ты 1 а не 2. Это меня двое (Kot и Bazilio). Но все равно скажи, что нибудь про архисложное, а я постараюсь понять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 14:01 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Кот Базилио: так к тебе на Вы надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 14:04 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Да, Лох Позорный, времени много уходит, но в 40 мин. укладываюсь. Тренировка! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 14:06 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Котики, миленькие, оба! Так я ведь говорю (хором и на два голоса), что у меня никаких идей нет. Я не знаю, как следить за всей базой сразу. Были бы в Аксессе триггеры - можно было бы хотя бы поймать, в котором часу поменялись данные. А так даже это не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 14:08 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Нет, Лифчик, не надо, хоть меня и двое, но лицо одно.:) А свежие мысли есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 14:09 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Тогда всем спасибо, на сегодня пока. Владимир Саныч, я знаю, когда поменялись данные (фиксируется в поле по Now()), но не знаю почему они не правильно поменялись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 14:14 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Но по этому Now можно определить, в каком месте программы это произошло? А может, там было еще одно обновление, которое никаким Now не сопровождалось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 14:22 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
2 Kot Bazilio У тебя беды начались в какой-то (не очень) определенный момент? Ну вот и пытайся выяснить - что же произошло. У меня падения баз вообще и падения индексов в частности случались из-за глючного свича, из-за глючного сервака, из-за глючного железа на рабочей станции, из-за того, что на клиентских машинах ставили виндоус 2000, из-за недонастроенного терминального сервера, из-за разных сервиспаков к офису на разных машинах, да и хрен упомнишь из-за чего еще. авторвремени много уходит, но в 40 мин. укладываюсь. Тренировка! Да уж... Воистину тренировка. Правда у меня хоть записей было и поменьше, но индексов побольше. Видими из-за этого дольше восстанавливалось. Да и давно это было, машинки тогда слабее были. И трава зеленее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 14:23 |
|
||
|
Неправильно отрабатывает условие при отборе
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч Конечно, было такое обновление (добавление), которое Now не сопровождалось! Вот оно то как раз в базу и не попадало. Лох Позорный Да, вспоминается такой момент, я уже о нем думал. Где-то полгода назад я разрезал базу и поместил в отдельную базу две вышеуказанные самые большие таблицы (связанные 1 ко многим). До того ТАКИХ сбоев точно не было, а вот когда точно началась эта херня - точно не помню. Но сегодня же сделаю импорт этих таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 14:39 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32422477&tid=1676469]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 207ms |
| total: | 494ms |

| 0 / 0 |
