|
|
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
Добрый день Вопрос по складу. Учет по дням. Подскажите пожалуйста, следует ли при закрытии текущего дня все текущие документы перенести на другую отдельную таблицу (таблица архивных документов) или лучше просто в новом дне все документы за предыдущие дни скрыть (фильтровать по текущему дню)? СПАСИБО ЗА ВСЕ ОТВЕТЫ!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 07:01 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
Главным образом это зависит от количества документов и периодичности их изменений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 08:45 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
СПАСИБО за ответ, но хотелось бы знать, как поступают другие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 10:13 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
Всё очень сильно зависит от количества документов, создаваемых в течение дня и запросов, которые чаще всего произодятся по базе. ИМХО, надо конкретизировать вопрос. Так как, к примеру, если в день создаётся один документ, то нет смысла сбрасывать его в архивную таблицу в конце рабочего дня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 10:32 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
GreenStar Вопрос по складу. Учет по дням. Подскажите пожалуйста, следует ли при закрытии текущего дня все текущие документы перенести на другую отдельную таблицу (таблица архивных документов) или лучше просто в новом дне все документы за предыдущие дни скрыть (фильтровать по текущему дню)? Обычно с документами за последние несколько дней продолжают работать (если не изменять, то просматривать, печатать и т.п.). А вот документы прошлого месяца востребованы значительно реже. Но бывает необходимость просмотра и очень старых документов, поэтому делая перенос позаботьтесь о том, чтобы у пользователей была возможность до них добраться. На мой взгляд имеет смысл поступать так: при завершении дня с документами последнего дня ничего не делать, а вот документы месячной давности переносить. Это можно делать не при завершении дня, а периодическим фоновым процессом. Но все это осмысленно только в том случае, если документооброт достаточно большой и наличие старых документов в таблице с текущими сильно замедляет работу. По моим наблюдениям для достаточно сложной структруы документов объем в 200-300 тысяч документов в основной таблице ниака не сказывался на времени работы. Поэтому при ежедневных объемах до 1 тысячи переносом заниматься вряд ли стоит. При объемах до 10 тысяч это можно делать раз в несколько месяцев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 10:41 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
Делай таблицу "Журнал" практически дубль таблицы "Проводки", при проведении/закрытии переноси строки в таблицу "Проводки" и соответственно удаляй всё из "Журнала" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 10:49 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
GreenStarДобрый день Вопрос по складу. Учет по дням. Подскажите пожалуйста, следует ли при закрытии текущего дня все текущие документы перенести на другую отдельную таблицу (таблица архивных документов) или лучше просто в новом дне все документы за предыдущие дни скрыть (фильтровать по текущему дню)? СПАСИБО ЗА ВСЕ ОТВЕТЫ!!! Следует переносить только при сумасшедшем количестве ежедневных записей. У коллег бухгалтерская система, ежедневно тысячи проводок. Перенос в др. таблицу производится только по окончании года. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 11:19 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
GreenStarСПАСИБО за ответ, но хотелось бы знать, как поступают другие? При больши объемах таблицу секционируют по дате и сервер сам разбирается в какую часть писать запись, дополнительных действий со стороны разработчика по переливке при закрытии периода не требуется. см. MSSQL - partitioned view ORACLE - partition by table ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 12:31 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
Роман ДынникПри больши объемах таблицу секционируют по дате и сервер сам разбирается в какую часть писать запись, дополнительных действий со стороны разработчика по переливке при закрытии периода не требуется. см. MSSQL - partitioned view ORACLE - partition by table 1. При секционировании нужно учитывать, что при запросах без секционированного поля в условии производительность может значительно снизиться. 2. Секционирование доступно только в Enterprise Edition (по крайней мере в Oracle), цену лицензирования вам напомнить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 13:01 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
evostr Роман ДынникПри больши объемах таблицу секционируют по дате и сервер сам разбирается в какую часть писать запись, дополнительных действий со стороны разработчика по переливке при закрытии периода не требуется. см. MSSQL - partitioned view ORACLE - partition by table 1. При секционировании нужно учитывать, что при запросах без секционированного поля в условии производительность может значительно снизиться. 2. Секционирование доступно только в Enterprise Edition (по крайней мере в Oracle), цену лицензирования вам напомнить? По 1. Оптимизация как правило требует усилий со стороны разработчика а иногда и пользователя. Хочешь, чтобы запросы работали быстро, нужно играть по правилам. Значительное снижение производительности касается скорее тех запросов которые работали быстро. Если к быстрый звпрос стал работать в 10 раз медленнее, то это может никто и не заметить. На медленные запросы секционирование или почти не влияет или существенно ускоряет. По 2. Секционирование для того и нужно, чтобы управлять большими объёмами данных, а большие данные это обычно задача масштаба предприятия, за которую по любому придётся платить много. Переносить данные в архив ежедневно нерационально. Вчерашние документы и даже документы недельной давности скорее всего могут понадобится, а для возврата документов из из архива, или для работы непосредственно в архиве придётся делать дополнительные программы. Я встречался с программами, где архивируются только записи, к которым уже не будет надобности обращаться. По большому счёту их можно просто удалить, но на всякий случай их сбрасывают на ленты, DVD и т.п. Остальные записи хранятся в основной таблице (если нужно, её секционируют). На СУБД, где секционирование не подерживалось использовал набор одинаковых таблиц с единым методом доступа через представления с UNION ALL, синонимы и т.п.. По мере надобности создавал новые таблицы и наполнял их оперативными данными, подключал их в представления и работал дальше. Данные с места на место не копировал (это долго и журналы транзакций пухнут). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 14:11 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
mcureenab На СУБД, где секционирование не подерживалось использовал набор одинаковых таблиц с единым методом доступа через представления с UNION ALL, синонимы и т.п.. По мере надобности создавал новые таблицы и наполнял их оперативными данными, подключал их в представления и работал дальше. Данные с места на место не копировал (это долго и журналы транзакций пухнут). И секционирование имеет некоторые недостатки по сравнению с переносом. Во всех запросах нужно использовать условие по дате. Это может быть достаточно напряжно если приложение уже есть, а не только начинается его разработка. Также если секционирование идет по дате, то требуется постоянно создавать новые секции. Это некий административный "геморрой", хотя и вполне поддающийся автоматизации. Если же секционирование идет по специальному полю "признак архивной записи", то это никак не освобождает от необходимости переноса данных из одной секции в другую. Использование переноса в дополнительную таблицу позволяет не внося никаких изменений в основную часть приложения увеличить производительность. Естественно, что платой за такую "халяву" становится усложнение процедуры доступа к перенесенным данным. Ну а напоследок можно добавить, что с использованием view на основе обоих механизмов можно сымитировать для приложения поведение альтернативного варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 14:33 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
mcureenabПо 1. Оптимизация как правило требует усилий со стороны разработчика а иногда и пользователя. Хочешь, чтобы запросы работали быстро, нужно играть по правилам. Значительное снижение производительности касается скорее тех запросов которые работали быстро. Если к быстрый звпрос стал работать в 10 раз медленнее, то это может никто и не заметить. На медленные запросы секционирование или почти не влияет или существенно ускоряет. Вопрос не только в том, что запрос станет в 10 раз медленнее работать, может значительно увеличиться количество логического/физического чтения - следовательно снизится масштабируемость такого приложения, а это с вашим комментарием по пункту 2 никак не вяжется mcureenabПо 2. Секционирование для того и нужно, чтобы управлять большими объёмами данных, а большие данные это обычно задача масштаба предприятия, за которую по любому придётся платить много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 14:50 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
Bogdanov AndreyНу а напоследок можно добавить, что с использованием view на основе обоих механизмов можно сымитировать для приложения поведение альтернативного варианта. Скорее теоретически. На практике наверняка возникнут проблемы с производительностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 17:29 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
авторТакже если секционирование идет по дате, то требуется постоянно создавать новые секции. Это некий административный "геморрой", хотя и вполне поддающийся автоматизации. Если же секционирование идет по специальному полю "признак архивной записи", то это никак не освобождает от необходимости переноса данных из одной секции в другую. В MSSQL2005 стало намного проще с созданием секций. Кроме того существует куча сценариев, типа "плавающее окно,..." которые облегчают участь разработчика и администратора. В MSSQL2000 все обходились тем, что писали пару job-ов по созданию доп. секций и переносу данных из "default-section", уверяю вас - никакого геморроя :) evostr1. При секционировании нужно учитывать, что при запросах без секционированного поля в условии производительность может значительно снизиться. Если поиск не по полю секционирования, какой тогда смысл переноса данных в архивы? Это никак не облегчит участь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 18:40 |
|
||
|
Следует ли при закрытии текущего дня все текущие документы перенести на другую таблицу?
|
|||
|---|---|---|---|
|
#18+
Не заметил (может и говорил кто-то),но никто не рассмотрел следующую проблему при наличии двух таблиц: в какой-то момент времени проектировщики обязательно забудут добавить поля в архивную таблицу и потом будут пляски с бубнами по поводу их синхронизации и синхронизации данных (на оодном проекте так и было),поэтому я настойчиво за вариант с секционированием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 10:53 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34332861&tid=1544727]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 511ms |

| 0 / 0 |
