|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Firebird 2.5, клиент на Delphi. Раз в год происходит необъяснимое удаление самой первой строки в одной их таблиц БД. Таблица основная (хранится одновременно приход и расход), самая большая, но далеко не единственная. Есть сопоставимые по числу записей. Причем первая строка пропадает на каждой из торговых точек (коих 15 штук), но не одновременно. Предыстория: раз в год происходит обрезка базы - очищаются все таблицы, кроме справочников, остатки переносятся вручную через файл Excel приходным документом в клиенте. Через некоторое время - разное для каждой точки - месяц, два или более и происходит пропажа первой строки. Потом до следующей обрезки вроде все в порядке - ничего не пропадает. Можно как-то выяснить в чем дело без ведения логов? Потому что 1) первая строка на рабочих базах уже везде пропала, 2) на точках включение логов нецелесообразно так как и там все работает медленно и 3) поможет ли вообще ведение логов для точного выяснения причины данной ситуации? Сейчас хотелось хотя бы выяснить: 1. Дело в Firebird и происходит в результате каких-то внутренних процедур - возможно переиндексации или чего то подобного? 2. Дело в клиенте. Если в клиенте то в какую сторону копать? З.Ы. Документ с этой самой первой строкой (входящие остатки) точно не перепроводился с момента обрезки базы на большинстве точек ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:17 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Гадать можно долго о причине. Я бы повесил триггер BEFORE DELETE и проверял бы попытку удаления первой строки (у нее должно быть определенный ID). А дальше смотреть по стеку вызовов, как она удаляется. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:21 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
арт2010, "Дорогие учёные. У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходит"(c) Извиняюсь, конечно, но удержаться было невозможно... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:23 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
арт2010 ...раз в год происходит обрезка базы - очищаются все таблицы, кроме справочников, остатки переносятся вручную через файл Excel... ... на точках включение логов нецелесообразно так как и там все работает медленно ...вам бы не пропажей строк заниматься, а чем-то более насущным - пересмотреть архитектуры системы, подумать над вопросами оптимизации, как кода приложения, так и бизнес процессов на предприятии... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:26 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
арт2010, прежде всего проверяй свою обрезку. Потому что само по себе ничего удалится не может. Какая к чёрту переиндексация? По идее она может происходить только сразу после обрезки, и то если вы сами её запустили. В других случаях она на фиг не упала. Ещё могу предположить что одна из ваших ХП написана криво или приложение написано криво. Например написано так что в некоторых случаях может затрагивать строки которые затрагиваться не должны. И это очень даже вероятно судя по стилю написания SQL который вы здесь выкладывали. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:34 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Щукина Анна, спасибо за "добрые советы". Вопрос задан исключительно конкретный, не занимайтесь флудом. Берите пример с CyberMax, предлагайте по существу проблемы, либо таки удерживайтесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:35 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Симонов Денис, в том то и дело, я не зря написал, что первый документ с этой первой строкой точно не перепроводился в большинстве точек. А ХП вызываемых по дате в БД нет. А если бы была виновата ХП, ответственная за удаление, то непонятно, почему такое случается только один раз и только в одном самом первом документе. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:39 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
арт2010, потому что запрос типа Код: sql 1.
без order by в ряде случаев может вернуть случайную строку. Я бы не стал делать такие предположения, но ваш предыдущий код говорит, что такое вполне вероятно. Ищи зависимости этой таблицы и проверяй весь код связанный с ней. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:45 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
арт2010, Вы слишком агрессивно настроены для человека, нуждающегося в помощи. так распугаете всех желающих помогать вам. Конкретные советы даны были - пересмотреть архитектуру системы, оптимизировать работу узких мест. Поверьте, СУБД писали куда более грамотные специалисты, чем вам кажется. Если бы дело было в ней, пострадавших было бы больше, чем только вы один. Следовательно, как бы вам не хотелось бы этого слышать, но проблема - в вашем приложении. Вот его и "копайте". "Дорого" включать журналирования? Живите с проблемой, если это дешевле. Медленно работает? Ускоряйте. Какие ещё советы вы ожидали услышать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:49 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
арт2010, Добавлю еще, что политика создания триггеров BEFORE DELETE, которые проверяют дату и возможность удаления документов, себя полностью оправдывает. Сработка проверок типа: Код: sql 1. 2.
избавляет от подобных проблем навсегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:54 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Щукина Анна, тут отвечают в основном одни и те же люди, с очень высокой квалификацией. И никто из них, тем не менее, в ответ на конкретный вопрос не пишет - меняйте архитектуру системы. То есть по вашему я должен из-за этой одной ошибки переписать тысячи строк кода, написанного до меня, и вполне работоспособного на протяжении многих лет? Если это конечно не троллинг, то мягко говоря не очень умный совет. Далее, если я и настроен агрессивно, то только к вам. Когда критикуют по существу, не вопрос. Но перечитайте снова первых два своих ответа - где тут желание помочь? Так что просто попрошу вас не комментировать более что-либо в моих темах. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:58 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Щукина Анна, Вы тут капитана Очевидность изображаете или троллите? Поговорить не с кем? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 09:59 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
CyberMaxЯ бы повесил триггер BEFORE DELETEКто сказал, что там не UPDATE ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 10:00 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Симонов Денис, все понимаю (пытаюсь по крайней мере). Не понимаю одного - ну хорошо, в коде ошибка. Но почему же она проявляется один только раз, с одной и той же строкой, в одной и то же таблице и только раз в год. Странно как-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 10:01 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Щукина Анна, ну вообще-то и БД всякое может случится. Но если ТС намекает на порчу файла базы данных, например битый индекс, то обычно там симптомы совсем иные нежели пропажа конкретно первой строки. В данном случае 99% что проблема в логике приложения или PSQL кода. Ещё 0.9% оставляю на то, что ТС наткнулся на проблемы со стабильностью курсора. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 10:03 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
CyberMax, ок, спасибо, так наверно и придется делать ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 10:03 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
hvladCyberMaxЯ бы повесил триггер BEFORE DELETEКто сказал, что там не UPDATE ? Меняется содержимое строки на другое и строка как бы "удаляется"? Возможно. Тогда триггер BEFORE INSERT UPDATE DELETE спасет отца русской демократии. Симонов ДенисВ данном случае 99% что проблема в логике приложения или PSQL кода. Ещё 0.9% оставляю на то, что ТС наткнулся на проблемы со стабильностью курсора. Денис, у него 2.5. Так что 100% :). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 10:06 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
CyberMax, ну как раз в 2.5 проблемы со стабильностью курсора есть, а в 3.0 она исправлена. Поэтому и оставил 0.9%, хотя надо было 0.1%. Но наткнуться на неё в 2.5 ещё надо уметь, это надо очень специфические запросы/ХП писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 10:10 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
CyberMaxЩукина Анна, Вы тут капитана Очевидность изображаете или троллите? Какой капитан? Бог с вами... До младшего лейтенанта бы дотянуть (и да, на всякий случай, я в курсе, что такое звание упразднили). З.Ы. Считайте, что это моё личное психологические исследования на около АйТишную тему. Можете называть троллингом, если вам такой термин ближе к понимаю.. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 10:28 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
арт2010То есть по вашему я должен из-за этой одной ошибки переписать тысячи строк кода, написанного до меня, и вполне работоспособного на протяжении многих лет? Если это конечно не троллинг, то мягко говоря не очень умный совет. судя по "прекрасному" запросу из вашей последней темы, в вашей БД полный ахтунг с кодом. Поэтому достаточно неумно жаловаться на советы переделать кривые места. Да, у вас где-то там в триггере удаляются лишние записи. Да, всю эту фигню надо пересмотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 10:29 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
арт2010попрошу вас не комментировать более что-либо в моих темах.но у меня же остается право проигнорировать вашу просьбу? ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 10:30 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
арт2010Не понимаю одного - ну хорошо, в коде ошибка. Но почему же она проявляется один только раз, с одной и той же строкой, в одной и то же таблицеПотому что нет другой такой строки. арт2010и только раз в годПотому что такая строка создаётся раз в год. арт2010Странно как-тоИ не говори... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 10:36 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Симонов ДенисНо если ТС намекает на порчу файла базы данных, например битый индекс, то...нужно запускать валидацию. Причём до и после подозрительной операции. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 10:37 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
kdv, какие конкретно кривые места в данном случае, если их может быть несколько десятков - десятки ХП в БД + херова туча delete и update на клиенте? Во вчерашней теме согласен - там был конкретный запрос и такой совет можно было бы дать, и то относительно одного конкретного запроса. В данном же случае очевидно что размер проблемы несопоставим с предложением поменять внезапно всю архитектуру ;) В общем предлагаю тему закрыть во избежании флуда, нужные советы уже получены. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 11:48 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
арт2010какие конкретно кривые места в данном случае, если их может быть несколько десятков - десятки ХП в БД + херова туча delete и update на клиенте? Вот все их и проверяй. Или, как уже сказали, завели триггер, запрещающий удаление и потом слушай откуда раздадутся вопли. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 12:38 |
|
|
start [/forum/topic.php?fid=40&msg=39699488&tid=1560992]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 286ms |
total: | 443ms |
0 / 0 |