Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Скорость выборки данных. / 11 сообщений из 11, страница 1 из 1
17.02.2011, 09:39
    #37121548
Алексей Кр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выборки данных.
Подскажите, как увеличить скорость выборки данных из таблицы базы данных sqlite ?
Файл с базой данных занимает где-то 150 мегабайт. В таблицу загружено 300 тысяч записей, грузилось 10 часов.
Таблица состоит из 20 полей, загружались данные в основные 10 полей.
Набрал просто select * from table , выбирается очень долго, порядка 10 минут.
С каким объемом данных рассчитана работать sqlite ?
Какие альтернативные базы данных посоветуете для использования, без разворачивания серьезных субд?
...
Рейтинг: 0 / 0
17.02.2011, 09:46
    #37121561
Алексей Кр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выборки данных.
Также уточните нет никаких способов по массовой вставке данных?
а то 300 тысяч записей вставлялись порядка 10 часов...
...
Рейтинг: 0 / 0
17.02.2011, 09:53
    #37121575
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выборки данных.
Да кто же тебя знает как ты загружал данные ... Какой код, какие установки SQLite,
какая версия SQLite, что за железо, где файл БД лежит и т.д.

PS: С нормальным объемом расчитана работать SQLite.
...
Рейтинг: 0 / 0
17.02.2011, 10:06
    #37121603
Алексей Кр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выборки данных.
Dmitry ArefievДа кто же тебя знает как ты загружал данные ... Какой код, какие установки SQLite,
какая версия SQLite, что за железо, где файл БД лежит и т.д.

Использовал библиотеку Syste.Data.SQLite в .NET
Код на C#, но если даже вручную написать Insert into в запросе, и такой запрос выполнить через соединение к бд в Visual Studio - время приблизительно такое же выходит. (оценивал по вставке 2000 записей, как через обычный запрос, так и через код)
Через код, 300тысяч записей вставлялись примерно 10 часов.
Операционная система Windows XP SP2, Файловая система NTFS, на диске свободно 12 гектар из 190 гектар.
Винчестер обычный 7200.
Установлен провайдер: SQLite ADO.NET 2.0/3.5 Setup, версия: 1.0.66.0

Dmitry ArefievPS: С нормальным объемом расчитана работать SQLite.
Нормальный объем это сколько? С какими объемами Вам приходилось работать? Какая скорость выборки данных ?
...
Рейтинг: 0 / 0
17.02.2011, 10:07
    #37121608
Алексей Кр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выборки данных.
Код на C# инициализируется команда c Insert
По циклу добавляются параметры к Command и выполняется запрос
...
Рейтинг: 0 / 0
17.02.2011, 11:28
    #37121841
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выборки данных.
1) Заключить INSERT'ы в транзакции, штук по 1000.
2) Если железо неглючное, других читающих / пишущих БД соединений нет, то:
Код: plaintext
1.
2.
3.
PRAGMA cache_size =  10000 ;
PRAGMA synchronous = off;
PRAGMA locking_mode = exclusive;
PRAGMA journal_mode = wal;
3) БД желательно пересоздать с размером страницы 4096 или как еще по вкусу.
...
Рейтинг: 0 / 0
17.02.2011, 11:29
    #37121847
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выборки данных.
Алексей КрНормальный объем это сколько? С какими объемами Вам приходилось работать? Какая скорость выборки данных ?
http://www.sql.ru/forum/actualthread.aspx?tid=775705
...
Рейтинг: 0 / 0
17.02.2011, 11:53
    #37121931
Алексей Кр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выборки данных.
PRAGMA cache_size = 10000;
PRAGMA synchronous = off;
PRAGMA locking_mode = exclusive;
PRAGMA journal_mode = wal;

Поясните пожалуйста, куда это нужно прописывать (в c# коде)?

И как пересоздавать БД, когда изначально необходимо в соединении прописывать DataSource базы данных
Если же воспользоваться программой sqliteadmin, то там база создается и все, без нельзя выполнять никакие запросы.
...
Рейтинг: 0 / 0
17.02.2011, 12:31
    #37122067
Алексей Кр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выборки данных.
Еще вопрос, как осуществляется переиндексация индексов в таблицах в БД SQLite ?
...
Рейтинг: 0 / 0
17.02.2011, 14:32
    #37122429
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выборки данных.
Алексей КрЕще вопрос, как осуществляется переиндексация индексов в таблицах в БД SQLite ?
{S|R}TF{W|M} !!
http://www.sqlite.org/lang_reindex.html
...
Рейтинг: 0 / 0
17.02.2011, 14:37
    #37122450
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выборки данных.
Алексей КрПоясните пожалуйста, куда это нужно прописывать (в c# коде)?
Каждая команда исполняется через Execute / ExecSQL или что там есть в c#.
Алексей КрИ как пересоздавать БД, когда изначально необходимо в соединении прописывать DataSource базы данных
Если же воспользоваться программой sqliteadmin, то там база создается и все, без нельзя выполнять никакие запросы.
БД SQLite создается в большинстве тулов если ее нет на момент открытия. После
этого БД пустая (размер = 0 байт) и можно указать размер страницы:
Код: plaintext
PRAGMA page_size = xxx
http://www.sqlite.org/pragma.html#pragma_page_size

PS1: Я из мира Delphi и c# / ado.net не знаю. Может кто другой ответит или спроси в
соседнем форуме по c#.
PS2: Большинство твоих вопросов отвечены на www.sqlite.org. Возьми и почитай.
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Скорость выборки данных. / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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