Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. У меня следующий вопрос. Клиент должен работать (только чтение данных) с наборами таблиц локально. Таблицы будут выгружены с SQL Server'а или в виде Flat-файлов, или в виде файлов dbf, и отправлены клиентам. Сложность заключается в том, что объемы данных могут быть большими (порядка 2-5 млн записей в таблице) и, как я думаю, работа настольной СУБД, например, как Paradox, будет очень медленнной. При работе же с текстовыми файлами встает вопрос производительности и сложность обработки данных (т.е. в клиентском приложении будет множество DML операций, и как работать с простыми текстовыми файлами... отается проблемой). Что посоветуете? Заранее спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 08:37 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
acsess. а можно узнать причину такой задачи подробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 09:14 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
только не акс... если так уж нравятся текстовые файлы то csv... авторСложность заключается в том, что объемы данных могут быть большими (порядка 2-5 млн записей в таблице при таких обьемах все что угодно локально тормозить будет.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 09:25 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
т.е. в клиентском приложении будет множество DML операций -- и это работа только на чтение?! 1 или 2 млн. не имеет значения для нормально написанного приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 09:35 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
PS имел ввиду и 5 млн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 09:36 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 09:41 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
DremlinЗдравствуйте..Здравствуйте DremlinКлиент должен работать (только чтение данных) с наборами таблиц локально. Таблицы будут выгружены с SQL Server'а или в виде Flat-файлов, или в виде файлов dbf, и отправлены клиентам.DBF = > Visual FoxPro DremlinСложность заключается в том, что объемы данных могут быть большими (порядка 2-5 млн записей в таблице) и, как я думаю, работа настольной СУБД, например, как Paradox, будет очень медленнной.Быстрее, чем Fox работает с локальными dbf-таблицами, ничего не найти. 5 млн. записей - не проблема. Единственное ограничение - размер одной таблицы не может превышать 2Gb. Это связано с применяемой технологией блокировок. DremlinПри работе же с текстовыми файлами встает вопрос производительности и сложность обработки данных (т.е. в клиентском приложении будет множество DML операций, и как работать с простыми текстовыми файлами... отается проблемой).В твоем распоряжении будет богатый DML, так что здесь даже обсуждать нечего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 11:18 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
В общем, задача такая. Есть программа билинговой системы для печати квитанций абонентам. Она клиент-серверная. До этого все квитанции формировались в центральном офисе, где и физически расположены все сервера. Проблема в том, что печать на месте есетественно будет произведена намного быстрее, чем у заказчика. Заказчик хочет печатать квитанции у себя в другом городе за тысячи километров от центрального офиса. Перед печатью квитанций формируются данные, которые как раз и отправляются заказчику в виде текстовых файлов, где на их основе будет производится локальная печать квитанций. Наши специалисты говорят, что настольная СУБД не подойдет для больших объемов данных, а работать с текстовыми файлами как с таблицами геморно (скажим легко ли будет иммитировать SQL-запрос с множеством подзапросов работая только с текстовыми файлами). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 11:26 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
В общем, задача такая. Есть программа билинговой системы для печати квитанций абонентам. Она клиент-серверная. До этого все квитанции формировались в центральном офисе, где и физически расположены все сервера. Проблема в том, что печать на месте есетественно будет произведена намного быстрее, чем у заказчика. Заказчик хочет печатать квитанции у себя в другом городе за тысячи километров от центрального офиса. Перед печатью квитанций формируются данные, которые как раз и отправляются заказчику в виде текстовых файлов, где на их основе будет производится локальная печать квитанций. Наши специалисты говорят, что настольная СУБД не подойдет для больших объемов данных, а работать с текстовыми файлами как с таблицами геморно (скажим легко ли будет иммитировать SQL-запрос с множеством подзапросов работая только с текстовыми файлами). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 11:28 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
DremlinНаши специалисты говорят, что настольная СУБД не подойдет для больших объемов данныхА чем ваши специалисты аргументируют? Этико-религиозными соображениями? Клиент-сервер от настольной БД отличается а) Б о льшими возможностями по контролю за доступом к данным б) Б о льшими возможностями по восстановлению после сбоев в) Б о льшим количеством одновременно работающих пользователей Настольные БД а) Требуют намного меньше ресурсов б) Данные занимают меньше места (в разы) б) Работают гораздо быстрее (локально - в десятки раз) О разнице в поддерживаемых объемах имеет смысл говорить, если объемы измеряются гигабайтами. В вашем случае: а) Шифровать данные и разделять права доступа не требуется б) Данные не редактируются, поэтому сбои исключены в) Одновременная работа десятков пользователей в одной базе не нужна И в чем преимущество "не настольных" СУБД? Наживать себе гемморой только потому, что вера не позволяет использовать что-то кроме Oracle? Я вам советую провести пару простых тестов. Установите Фокс. Создайте пустую таблицу, и добавьте в нее свои 5млн. записей из текстового файла. Выполните несколько запросов. Потом проиндексируйте ключевые поля и снова выполните те же запросы. Сравните время выполнения этих операций с аналогичными действиями на SQL Sever. Думаю, надобность писать в этот форум отпадет. Да, еще. Если речь идет о печати квитанций - в Фоксе есть встроенный генератор отчетов. Он достаточно прост, зато быстр. Для печати квитанций - то, что надо. Говорю это, исходя из собственного опыта - приходилось распечатывать отчеты по 6тыс. страниц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 12:30 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
Конкретные данные: Таблица dbf - (F1 c(100), F2 N(10.0), F3 D, F4 L) 5млн.записей занимает 572Mb. Экспорт этого объема в текстовый файл - 37 сек, добавление из текстового файла - 42 сек. Поиск случайного значения по полю F2 (N10.0) - не более 2 сек без использования индексов. Комп - PIV 2Ггц, 256Mb Операционка - Win2000, NTFS, антивирус отключен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 14:17 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
karly™ Поиск случайного значения по полю F2 (N10.0) - не более 2 сек без использования индексов. С одного диска? В dbf'е то данные построчно лежат, в кэш явно не помещаются. Без индекса - не верю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 20:07 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
Dremlin. Что-то я не въехал. То, что Вы называете клиент-сервером реализовано на DBF? На кой фиг посылать филиалам какие-то таблы? Что, запросы уже отменили? Или, хотя я и не сторонник такого подхода - репликации тоже уже не работают? Для печати квитанций для нормального клиент-сервера тысячи километров не помеха. тут не в километрах дело. Вы про сети слышали? ==================== Извините, что может быть слишком резко. Но это мне напомнило случай, когда в головной фирме отсылали в филиалы инфу по факсу, там ее сканирили, распознавали и специальной прогой подгружали в базу. ====== Я-то первоначально думал, что речь идет о каком-то справочнике на CD. +++++ Те, кто думают, что я питаюсь исключительно кровью новорожденных младенцев, ошибаются. Я их еще и жарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 22:43 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
2 Локшин Марк Вместо "не верю" лучше проделать то же самое и сказать "А у меня получилось в 10 раз больше/меньше". Данные лежат построчно, но для поиска по одному полю считывается не вся таблица, а только это поле. Вот если делать поиск по подстроке текстового поля (оно занимает больше всего места в таблице указанной структуры), результаты были бы другие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2004, 12:34 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
karly™Данные лежат построчно, но для поиска по одному полю считывается не вся таблица, а только это поле. Вот если делать поиск по подстроке текстового поля (оно занимает больше всего места в таблице указанной структуры), результаты были бы другие. Гы гы. Т.е. вы утверждаете, что если читать данные с диска по схеме прочитал 4 байта - 110 пропустил, и т.д. то получится быстрее? Ну-ну. Если находится за две секунды, то скорее всего эти записи находятся в начале таблицы. Ну нет сейчас дисков которые по 290 МБ в секунду считывают. И при построчном хранении невозможно считывать только один столбец. По крайней мере с таким размером строки, как у вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2004, 13:24 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
2karly™ Ну, положим, без индекса поиск за 2 сек возможен, но не любого значения (тут все будет зависеть от того, насколько близко к началу таблицы находится искомая запись). Но, в целом, поддерживаю: FoxPro - лучший выбор. А предусмотреть индексирование можно при первом открытии таблицы. Вот уж с индексами поиск занимает много меньше 0.01 секунды ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2004, 14:37 |
|
||
|
Локальная работа с большими объемами данных
|
|||
|---|---|---|---|
|
#18+
авторПроблема в том, что печать на месте есетественно будет произведена намного быстрее, чем у заказчика. Заказчик хочет печатать квитанции у себя в другом городе за тысячи километров от центрального офиса. Перед печатью квитанций формируются данные, которые как раз и отправляются заказчику в виде текстовых файлов, где на их основе будет производится локальная печать квитанций. Если инфа будет только печататься, то мне кажется, со скоростью проблем быть не должно- все равно самая медленная часть будет именно печать. Хотя... там будет печатаься все за раз, или отпечатываться по одному, для подошедшего клиента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 18:10 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=32641980&tid=1554065]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 371ms |

| 0 / 0 |
