|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#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 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
арт2010kdv, какие конкретно кривые места в данном случае, если их может быть несколько десятков - десятки ХП в БД + херова туча delete и update на клиенте?депенденсы в эксперте все есть. На клиенте поиском по файлам. Когда адаптировал код под трешку я кривой код в сотнях мест перетряхивал, эка невидаль - десятки. :) Пилите, Шурочка, пилите... (с). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 12:56 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyПилите, Шурочка, пилите... (с). А потом окажется, что "очень большое начальство" раз в год объезжает точки с "инспекцией" и собственноручно тыкает в "самую главную кнопку" потому что "так надо". И, случайно, эта кнопка окажется кнопкой удаления записи на которой стоит курсор (а он стоит на первой). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 12:59 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovсобственноручно тыкает в "самую главную кнопку" Кстати, никакой анализ кода не выявит случай когда пользователь путает кнопку-крестик закрытия окна с кнопкой-крестиком удаления записи. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 13:22 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovКстати, никакой анализ кода не выявит случай когда пользователь путает кнопку-крестик закрытия окна с кнопкой-крестиком удаления записи.Ага, раз год. Притянуто за уши для "потрындеть". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 13:28 |
|
Необъяснимое удаление первой строки в одной из таблиц БД
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDimitry Sibiryakovсобственноручно тыкает в "самую главную кнопку" Кстати, никакой анализ кода не выявит случай когда пользователь путает кнопку-крестик закрытия окна с кнопкой-крестиком удаления записи. А у меня для удаления кнопка "Мусорный контейнер" . ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 15:15 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1560992]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 175ms |
0 / 0 |