powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
15 сообщений из 15, страница 1 из 1
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34331932
GreenStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день
Вопрос по складу. Учет по дням. Подскажите пожалуйста, следует ли при закрытии текущего дня все текущие документы перенести на другую отдельную таблицу (таблица архивных документов) или лучше просто в новом дне все документы за предыдущие дни скрыть (фильтровать по текущему дню)?

СПАСИБО ЗА ВСЕ ОТВЕТЫ!!!
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34332048
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Главным образом это зависит от количества документов и периодичности их изменений
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34332278
GreenStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПАСИБО за ответ, но хотелось бы знать, как поступают другие?
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34332335
BlackDan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё очень сильно зависит от количества документов, создаваемых в течение дня и запросов, которые чаще всего произодятся по базе.
ИМХО, надо конкретизировать вопрос. Так как, к примеру, если в день создаётся один документ, то нет смысла сбрасывать его в архивную таблицу в конце рабочего дня.
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34332367
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GreenStar
Вопрос по складу. Учет по дням. Подскажите пожалуйста, следует ли при закрытии текущего дня все текущие документы перенести на другую отдельную таблицу (таблица архивных документов) или лучше просто в новом дне все документы за предыдущие дни скрыть (фильтровать по текущему дню)?


Обычно с документами за последние несколько дней продолжают работать (если не изменять, то просматривать, печатать и т.п.). А вот документы прошлого месяца востребованы значительно реже. Но бывает необходимость просмотра и очень старых документов, поэтому делая перенос позаботьтесь о том, чтобы у пользователей была возможность до них добраться.

На мой взгляд имеет смысл поступать так: при завершении дня с документами последнего дня ничего не делать, а вот документы месячной давности переносить. Это можно делать не при завершении дня, а периодическим фоновым процессом.
Но все это осмысленно только в том случае, если документооброт достаточно большой и наличие старых документов в таблице с текущими сильно замедляет работу. По моим наблюдениям для достаточно сложной структруы документов объем в 200-300 тысяч документов в основной таблице ниака не сказывался на времени работы. Поэтому при ежедневных объемах до 1 тысячи переносом заниматься вряд ли стоит. При объемах до 10 тысяч это можно делать раз в несколько месяцев.
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34332393
jikez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делай таблицу "Журнал" практически дубль таблицы "Проводки", при проведении/закрытии переноси строки в таблицу "Проводки" и соответственно удаляй всё из "Журнала"
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34332530
Tyo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GreenStarДобрый день
Вопрос по складу. Учет по дням. Подскажите пожалуйста, следует ли при закрытии текущего дня все текущие документы перенести на другую отдельную таблицу (таблица архивных документов) или лучше просто в новом дне все документы за предыдущие дни скрыть (фильтровать по текущему дню)?

СПАСИБО ЗА ВСЕ ОТВЕТЫ!!!

Следует переносить только при сумасшедшем количестве ежедневных записей.
У коллег бухгалтерская система, ежедневно тысячи проводок. Перенос в др. таблицу производится только по окончании года.
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34332861
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GreenStarСПАСИБО за ответ, но хотелось бы знать, как поступают другие?
При больши объемах таблицу секционируют по дате и сервер сам разбирается в какую часть писать запись, дополнительных действий со стороны разработчика по переливке при закрытии периода не требуется.
см. MSSQL - partitioned view
ORACLE - partition by table
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34333011
Фотография evostr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман ДынникПри больши объемах таблицу секционируют по дате и сервер сам разбирается в какую часть писать запись, дополнительных действий со стороны разработчика по переливке при закрытии периода не требуется.
см. MSSQL - partitioned view
ORACLE - partition by table
1. При секционировании нужно учитывать, что при запросах без секционированного поля в условии производительность может значительно снизиться.
2. Секционирование доступно только в Enterprise Edition (по крайней мере в Oracle), цену лицензирования вам напомнить?
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34333360
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evostr Роман ДынникПри больши объемах таблицу секционируют по дате и сервер сам разбирается в какую часть писать запись, дополнительных действий со стороны разработчика по переливке при закрытии периода не требуется.
см. MSSQL - partitioned view
ORACLE - partition by table
1. При секционировании нужно учитывать, что при запросах без секционированного поля в условии производительность может значительно снизиться.
2. Секционирование доступно только в Enterprise Edition (по крайней мере в Oracle), цену лицензирования вам напомнить?

По 1. Оптимизация как правило требует усилий со стороны разработчика а иногда и пользователя. Хочешь, чтобы запросы работали быстро, нужно играть по правилам. Значительное снижение производительности касается скорее тех запросов которые работали быстро. Если к быстрый звпрос стал работать в 10 раз медленнее, то это может никто и не заметить. На медленные запросы секционирование или почти не влияет или существенно ускоряет.

По 2. Секционирование для того и нужно, чтобы управлять большими объёмами данных, а большие данные это обычно задача масштаба предприятия, за которую по любому придётся платить много.

Переносить данные в архив ежедневно нерационально. Вчерашние документы и даже документы недельной давности скорее всего могут понадобится, а для возврата документов из из архива, или для работы непосредственно в архиве придётся делать дополнительные программы.
Я встречался с программами, где архивируются только записи, к которым уже не будет надобности обращаться. По большому счёту их можно просто удалить, но на всякий случай их сбрасывают на ленты, DVD и т.п. Остальные записи хранятся в основной таблице (если нужно, её секционируют).
На СУБД, где секционирование не подерживалось использовал набор одинаковых таблиц с единым методом доступа через представления с UNION ALL, синонимы и т.п.. По мере надобности создавал новые таблицы и наполнял их оперативными данными, подключал их в представления и работал дальше. Данные с места на место не копировал (это долго и журналы транзакций пухнут).
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34333476
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab
На СУБД, где секционирование не подерживалось использовал набор одинаковых таблиц с единым методом доступа через представления с UNION ALL, синонимы и т.п.. По мере надобности создавал новые таблицы и наполнял их оперативными данными, подключал их в представления и работал дальше. Данные с места на место не копировал (это долго и журналы транзакций пухнут).

И секционирование имеет некоторые недостатки по сравнению с переносом.
Во всех запросах нужно использовать условие по дате. Это может быть достаточно напряжно если приложение уже есть, а не только начинается его разработка.
Также если секционирование идет по дате, то требуется постоянно создавать новые секции. Это некий административный "геморрой", хотя и вполне поддающийся автоматизации.
Если же секционирование идет по специальному полю "признак архивной записи", то это никак не освобождает от необходимости переноса данных из одной секции в другую.

Использование переноса в дополнительную таблицу позволяет не внося никаких изменений в основную часть приложения увеличить производительность. Естественно, что платой за такую "халяву" становится усложнение процедуры доступа к перенесенным данным.

Ну а напоследок можно добавить, что с использованием view на основе обоих механизмов можно сымитировать для приложения поведение альтернативного варианта.
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34333585
Фотография evostr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabПо 1. Оптимизация как правило требует усилий со стороны разработчика а иногда и пользователя. Хочешь, чтобы запросы работали быстро, нужно играть по правилам. Значительное снижение производительности касается скорее тех запросов которые работали быстро. Если к быстрый звпрос стал работать в 10 раз медленнее, то это может никто и не заметить. На медленные запросы секционирование или почти не влияет или существенно ускоряет.
Вопрос не только в том, что запрос станет в 10 раз медленнее работать, может значительно увеличиться количество логического/физического чтения - следовательно снизится масштабируемость такого приложения, а это с вашим комментарием по пункту 2 никак не вяжется

mcureenabПо 2. Секционирование для того и нужно, чтобы управлять большими объёмами данных, а большие данные это обычно задача масштаба предприятия, за которую по любому придётся платить много.
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34334408
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyНу а напоследок можно добавить, что с использованием view на основе обоих механизмов можно сымитировать для приложения поведение альтернативного варианта.

Скорее теоретически. На практике наверняка возникнут проблемы с производительностью.
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34334717
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТакже если секционирование идет по дате, то требуется постоянно создавать новые секции. Это некий административный "геморрой", хотя и вполне поддающийся автоматизации.
Если же секционирование идет по специальному полю "признак архивной записи", то это никак не освобождает от необходимости переноса данных из одной секции в другую.
В MSSQL2005 стало намного проще с созданием секций. Кроме того существует куча сценариев, типа "плавающее окно,..." которые облегчают участь разработчика и администратора.
В MSSQL2000 все обходились тем, что писали пару job-ов по созданию доп. секций и переносу данных из "default-section", уверяю вас - никакого геморроя :)
evostr1. При секционировании нужно учитывать, что при запросах без секционированного поля в условии производительность может значительно снизиться. Если поиск не по полю секционирования, какой тогда смысл переноса данных в архивы? Это никак не облегчит участь.
...
Рейтинг: 0 / 0
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
    #34340212
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не заметил (может и говорил кто-то),но никто не рассмотрел следующую проблему при наличии двух таблиц: в какой-то момент времени проектировщики обязательно забудут добавить поля в архивную таблицу и потом будут пляски с бубнами по поводу их синхронизации и синхронизации данных (на оодном проекте так и было),поэтому я настойчиво за вариант с секционированием.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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