![]() |
|
#1
|
|||
|
|||
![]() Здравствуйте!
Сразу прошу прощения за чайниковский вопрос. Задача такова: необходимо создать файл отчёта в Excel-e. Нюанс в том, что в результирующей таблице порядка 50 столбцов и порядка 20 тыс. строк. Вводить данные будут примерно 50 пользователей. У меня под рукой на сети сервер под Linux, на котором развёрнут Oracle - это мне предоставил сисадмин. Я немного почитал документацию. Табличное пространство создать смогу, таблицу туда засунуть тоже смогу, пользователей создать смогу, последующий экспорт в Excel - легко, достаточное количество компьютеров имеется в наличии. Вопрос: когда пол-ста бухгалтеров, экономистов, финансистов компании одновременно подконнектятся к базе и будут вводить каждый свои позиции, какие возможны проблемы? |
#2
|
||||
|
||||
![]() при правильном подходе никаких.
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
![]() Цитата:
а при неправильном их будет великое множество ![]() Just Try Код сырец |
#4
|
||||
|
||||
![]() Если все через транзакции будет работать, то тут будет выстраиваться очередь и одновременно два юзверя не смогут менять данные в БД.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
||||
|
||||
![]() Цитата:
В этом случае правильнее будет селективные транзакции вешать на ReadCommitedReadOnly - эта транзакция всегда стартует подтверждённой, а транзакции на изменение, добавление, удаление реализовывать через хранимые процедуры с параметрами Код сырец |
#6
|
|||
|
|||
![]() Я снова извиняюсь - возможно буду говорить глупости. На сервере под Oracle создаётся база. Одновременно в эту базу лезет много народу и каждый вводит информацию. Каждая запись имеет признак вводившего её пользователя, т.е. пользователь имеет право,если потребуется, удалять и редактировать только записи со своим признаком. Что такое транзакции и что такое ReadCommitedReadOnly я ещё пока не знаю, а надо? Без проникновения в тонкости Oracle никак? Я хотел ехать только на технологии ADO из Delphi7, используя компонент ADOQuery.
|
#7
|
||||
|
||||
![]() Цитата:
ADO не самое лучшее решение доступа к данным в плане быстродействия, я бы посоветовал DevArt ODAC http://www.devart.com/ru/ для доступа к данным и для вывода EhLib http://ehlib.com/RUS/default.htm + ко всему тебе нужно уметь правильно составлять SQL запросы по этому поводу в сети много информации, транзакция это такое существо которое стартует когда ты что-то мутишь с данными, в пределах этой транзакции ты чё-то делаешь после чего ты можешь либо подтвердить транзакцию и данные сохраняться, либо откатить её и вернуть всё на место, у транзакции есть уровни изолированности, типа кто может и что может делать с данными когда чужая транзакция открыта, вот простенькое описание http://oracle-blog.ru/blog/novice/17.html управление транзакциями реализуется на уровне компонентов, у меня допустим данные селектятся используя уже подтверждённые транзакции, тем самым я никому не мешаю, ну и сохраняются с помощью процедур (при правильной структуре) за доли секунд после чего подтверждаю транзакцию и опять же ни кому не мешаю работать. Не знаю как в Oracle но в Firebird/InterBase незавершённые транзакции увеличивают объём хранимых данных и физ. размер БД и тормозят выборку а следовательно и работу персонала Код сырец |
#8
|
||||
|
||||
![]() Цитата:
Пишу программы за еду. __________________ |
#9
|
|||
|
|||
![]() Большое спасибо за ответы
|