Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Открытие и фильтрация DBF файла / 12 сообщений из 12, страница 1 из 1
10.03.2013, 15:10
    #38178907
Chumakov_JA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
Нужно отфильтровать DBF файл filename (1500000 записей ), данными из DataSet - nomer.

делаю так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
                
                       using (OleDbConnection connection = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source=E:\"))
                            {
                                OleDbCommand command = new OleDbCommand(@"SELECT * FROM '" + filename + "' WHERE NPSU='" + nomer + "'", connection);

                                connection.Open();
                                OleDbDataReader reader = command.ExecuteReader();

                                while (reader.Read())
                                {
                                 nom = (reader["NPD"].ToString());
                                nom1 = (reader["SLG"].ToString());
                                
                               }
                                reader.Close();
                            }



Основные тормоза здесь --> OleDbDataReader reader = command.ExecuteReader();

в итоге очень медленно
подскажите пути ускорения.
...
Рейтинг: 0 / 0
10.03.2013, 15:36
    #38178935
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
Chumakov_JA,

индекса конечно нет, или он в формате, не поддерживаемом провайдером?
...
Рейтинг: 0 / 0
10.03.2013, 15:42
    #38178938
Chumakov_JA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
ИзопропилChumakov_JA,

индекса конечно нет, или он в формате, не поддерживаемом провайдером?

ну в общем индексный файл есть
а как его можно тут использовать ?
я к такому виду подключения не привязан.
можно сменить тока на что?
но файл формата FoxPro 9.0
...
Рейтинг: 0 / 0
11.03.2013, 06:54
    #38179305
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
Chumakov_JA !

Индекс тут не поможет, т.к. он может использоваться только в среде VFP (если конечно у тебя точно dbf-файл именно VFP)...
Может быть сначала перетащить эти записи на какой-нибудь сервер (MSSQL,Oracle,...) ну и там индексы... вот с него и будет тебе счастье...
Да и посмотри, сколько записей:
Код: c#
1.
@"SELECT COUNT(*) FROM '" + filename + "' WHERE NPSU='" + nomer + "'";


А то и тут их до и более может быть...
...
Рейтинг: 0 / 0
11.03.2013, 08:11
    #38179335
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
Что-бы ты не делал, а 1500000 записей dbf будут всегда долго. Их нужно "перетаскивать" на какой-нибудь SQL. Если эти записи интенсивно "ведутся" то по нормальному сделать ни чего нельзя, нужно менять то приложение которое их "ведет". Можно конечно слепить типа аля сервер, который будет "вертеться" на той же машине где лежат эти полтора млн записей и общаться с ним по TCPIP, но это бугага будет.
...
Рейтинг: 0 / 0
11.03.2013, 08:24
    #38179347
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
Что делает OleDb-шный ExecuteReader() с dbf, он "затаскивает" в оперативку весь!!! файл dbf даже если запрос с WHERE.
...
Рейтинг: 0 / 0
11.03.2013, 16:20
    #38180086
Chumakov_JA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
fortibransa,

Вариант с перетаскиванием на сервер SQL невозможен
мне его дают (dbf файл) раз в месяц и всегда новый.
файл точно FoxPro 9.0
просто хотелось как то ускорить процес открытия после условия.

а по поводу колличества записей их 1 548 000.
...
Рейтинг: 0 / 0
11.03.2013, 17:06
    #38180158
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
Chumakov_JA,

размер записи?
...
Рейтинг: 0 / 0
11.03.2013, 18:57
    #38180343
Chumakov_JA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
ИзопропилChumakov_JA,

размер записи?

а что вы подрозумеваите под словом размер ?

объем файла 596 мб в нем 51 сторбец
...
Рейтинг: 0 / 0
11.03.2013, 19:40
    #38180390
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
Chumakov_JAа что вы подрозумеваите под словом размер ?
именно размер записи в байтах(в dbf они фиксированного размера),
понятно, около 400 байтов.
Chumakov_JAВариант с перетаскиванием на сервер SQL невозможен
мне его дают (dbf файл) раз в месяц и всегда новый.
И что с того? загрузить один в месяц раз в локальный SQL Express или что по вкусу, создать индекс и наступит счастье
...
Рейтинг: 0 / 0
12.03.2013, 07:57
    #38180728
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
Chumakov_JAfortibransa,

Вариант с перетаскиванием на сервер SQL невозможен
мне его дают (dbf файл) раз в месяц и всегда новый.
файл точно FoxPro 9.0
просто хотелось как то ускорить процес открытия после условия.

а по поводу колличества записей их 1 548 000.Как раз прекрасный вариант, ну пусть час загружаешь, зато потом месяц счастья. Я работал с такой фигней, правда файл поменьше был, дык даже службу написал (файл давали на CD) скопировал его в нужный каталог на сервере, служба подхватила, закачала (причем ночью) и все бугага.
...
Рейтинг: 0 / 0
12.03.2013, 11:04
    #38180905
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие и фильтрация DBF файла
Chumakov_JA !!!
1.5 ляма записей... это не так уж и много...
У меня в проект грузятся более 5 лямов записей...каждый месяц...
Окончание загрузки mer2_01.dbf (записей: 1449044) Затрачено времени: 00:12:58
Окончание загрузки mer10_01.dbf (записей: 4885782) Затрачено времени: 00:40:27
И ничего...
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Открытие и фильтрация DBF файла / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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