powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite VS Gigabase
25 сообщений из 51, страница 2 из 3
SQLite VS Gigabase
    #35505468
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBGДля телекома скорее уж mnesia хороша, для того она и создана :-) Но и она кстати для дискового хранения использует берклидб, токиокабинет или эскулайт. Как вариант, использую in-memory hash для хранения очень часто изменяемых данных, а при старте/останове сервера читаю/пишу их в эскулайт базу. Впрочем, это имеет смысл, если одновременно работающих пользователей около полутысячи и более, иначе не стоит и заморачиваться.

Знаешь, моих заказчиков *nix-ы в ступор вгоняют (они вообще фанаты дотнету), а ты мне про эрланговые надстройки над BDB Интересно было бы конечно пощупать, но уж больно оторвано от моей реальной жизни. Использовать SQLite как дисковое хрнанилище для IMDB - вполне себе подход, даже возражать не буду.
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35505470
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GramiTimesTen делает как стоячих и Oracle и MSSQL

А какая из них Embedded или IMDB ? ;)
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35505522
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
Gluk (Kazan)
Знаешь, моих заказчиков *nix-ы в ступор вгоняют (они вообще фанаты дотнету), а ты мне про эрланговые надстройки над BDB

Имхо, сейчас все ИТ-подразделения умеют обращаться с юниксом/линуксом и солярисом. Хотя мне тут сложно оценивать - большинство людей из моего круга общения пользуются линуксом как на работе, так и дома, а статистика почему-то показывает преобладание виндоус :-) Эрланг кроссплатформенный, кстати.

Что касается СУБД без поддержки SQL, на практике выходит, что хранение в них сериализованных многомерных структур данных и распаковка/запаковка их на уровне приложения на существенно "просаживают" производительность, так что эффективнее пользоваться SQL и наборами функций по обработке blob-полей согласно специфике приложения. В какую базу дампать на диск in-memory структуры, так это и вовсе вопрос религии, например, эскулайт имеет отличный тиклевский биндинг (в отличии от берклидб, к примеру) и позволяет легко писать пользовательские функции на С. Собственно, эскулайт в дефолтной поставке это лишь минимальный движок, к которому следует дописать нужную функциональность.
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35505537
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBGИмхо, сейчас все ИТ-подразделения умеют обращаться с юниксом/линуксом и солярисом. Хотя мне тут сложно оценивать - большинство людей из моего круга общения пользуются линуксом как на работе, так и дома, а статистика почему-то показывает преобладание виндоус :-) Эрланг кроссплатформенный, кстати.


Честно ? Спим и видим как перейти на разработку под никсы, но кто девушку кушает, тот ее и танцует :( Про эрланг знаю, было даже у начальства желание пощупать моими руками мнезию, но как то заглохло

MBG
Что касается СУБД без поддержки SQL, на практике выходит, что хранение в них сериализованных многомерных структур данных и распаковка/запаковка их на уровне приложения на существенно "просаживают" производительность, так что эффективнее пользоваться SQL и наборами функций по обработке blob-полей согласно специфике приложения.


Ну BDB прямо скажем не особенно просаживает, с учетом того, что OLTP запросы то как правило не особо сложные. Хранится структура и все дела. Кроме того ключ до 2G это сильно.

MBG
В какую базу дампать на диск in-memory структуры, так это и вовсе вопрос религии, например, эскулайт имеет отличный тиклевский биндинг (в отличии от берклидб, к примеру) и позволяет легко писать пользовательские функции на С. Собственно, эскулайт в дефолтной поставке это лишь минимальный движок, к которому следует дописать нужную функциональность.

Ч учетом того, что BDB не SQL-БД, биндинг звучит несколько загадочно
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35505553
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBG[quot Gluk (Kazan)]Кроме того, в эскулайте можно выбрать режим persist, в котором этот файл не удаляется. .

режим persist пока очень сырой (недавно появился).
я получил из-за него существенную просадку производительности на простых select-ах
с индексом по BLOB полю.
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35505593
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
Gluk (Kazan)Про эрланг знаю, было даже у начальства желание пощупать моими руками мнезию, но как то заглохло


Не очень давно mnesia unlimited вышла, там ограничения на объем данных в узле поснимали, красота. В апстрим собирались включить, но не смотрел, включили или еще нет.

Gluk (Kazan)
Ну BDB прямо скажем не особенно просаживает, с учетом того, что OLTP запросы то как правило не особо сложные. Хранится структура и все дела. Кроме того ключ до 2G это сильно.


Это смотря где - в документообороте, к примеру, при прохождении документом очередной инстанции идет проверка всего документа на валидность плюс генерация информации для отчетов. Большой ключ на практике мало интересен - при извлечении десятка тысяч документов при построении отчета какой объем данных надо будет поднять с таким ключом? :-) В реальном времени, скажем прямо, немыслимо делать подобный анализ.

Gluk (Kazan)
Ч учетом того, что BDB не SQL-БД, биндинг звучит несколько загадочно

Биндинг можно к любой динамической библиотеке сделать :-) Свои функции дописать тоже никто не мешает, но уж больно много кода получается для berkeleydb для выборок (понятно, что эмулировать sql-запросы сишным кодом не самая лучшая затея).
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35505611
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
PPA MBG[quot Gluk (Kazan)]Кроме того, в эскулайте можно выбрать режим persist, в котором этот файл не удаляется. .

режим persist пока очень сырой (недавно появился).
я получил из-за него существенную просадку производительности на простых select-ах
с индексом по BLOB полю.

В документации же ясно сказано, что этот режим следет использовать на платформах, где операция удаления файла намного более затратная, нежели забивание первого блока файла нулями. Если на вашей платформе это не так, то режим persist вам не подходит.

"The PERSIST journaling mode is useful as an optimization on platforms where deleting a file is much more expensive than overwriting the first block of a file with zeros."

P.S. "Если ничего больше не помогает, прочтите наконец документацию!" (с)
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35505785
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBGВ документации же ясно сказано, что этот режим следет использовать на платформах, где операция удаления файла намного более затратная, нежели забивание первого блока файла нулями. Если на вашей платформе это не так, то режим persist вам не подходит.


Гмм. а зачем забивать блок нулями ?
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35505791
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBGЭто смотря где - в документообороте, к примеру, при прохождении документом очередной инстанции идет проверка всего документа на валидность плюс генерация информации для отчетов.


Я еще недостаточно спятил, чтобы писать документооборот на BDB :)

MBG
Биндинг можно к любой динамической библиотеке сделать :-) Свои функции дописать тоже никто не мешает, но уж больно много кода получается для berkeleydb для выборок (понятно, что эмулировать sql-запросы сишным кодом не самая лучшая затея).

Я под биндингом понимаю параметризованные SQL-запросы
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35505832
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
Gluk (Kazan) MBGЭто смотря где - в документообороте, к примеру, при прохождении документом очередной инстанции идет проверка всего документа на валидность плюс генерация информации для отчетов.


Я еще недостаточно спятил, чтобы писать документооборот на BDB :)


На клиент-серверных СУБД пара тысяч одновременных пользователей уже требуют офигенного железа. Плюс указанным СУБД необходим постоянный мониторинг и настройка, которые для необслуживаемых серверов отсутствуют (клиенту устанавливается и настраивается железо+софт и дальше все должно годами работать, пока железо не сдохнет, бэкапы забираются по сети с помощью rsync, к примеру).

Gluk (Kazan)
MBG
Биндинг можно к любой динамической библиотеке сделать :-) Свои функции дописать тоже никто не мешает, но уж больно много кода получается для berkeleydb для выборок (понятно, что эмулировать sql-запросы сишным кодом не самая лучшая затея).

Я под биндингом понимаю параметризованные SQL-запросы

Имеется в виду интерфейс определенного языка программирования к динамической библиотеке.
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35505864
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBGНа клиент-серверных СУБД пара тысяч одновременных пользователей уже требуют офигенного железа.


MTS-а они требуют на Oracle

MBG
Я под биндингом понимаю параметризованные SQL-запросы
Имеется в виду интерфейс определенного языка программирования к динамической библиотеке.

ну это вообще мелочи
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35506015
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
Gluk (Kazan) MBGНа клиент-серверных СУБД пара тысяч одновременных пользователей уже требуют офигенного железа.


MTS-а они требуют на Oracle


Стоимость лицензий на оракл + стоимость железа + стоимость администрирования ... или нахрена попу наган, если поп не хулиган :-) К тому же оракл имхо неоптимально с железом работает (сотню пользователей мог бы и на целероне обслуживать), и расширяемость так себе - по отзывам, база на десяток терабайт требует очень дорогого железа (если постгрес, кажется, в яху, работает с петабайтными базами, то оракл должен уметь сильно поболее, за свою-то цену). Понятно, что оракл делает упор не на производительность, а на "фичастость" - встроенных возможностей вагон и маленькая тележка, плюс модули... Но все эти возможности в одном проекте не нужны, а требуемую часть из них можно найти/написать.

Полтысячи одновременных пользователей документооборота постгрес+эскулайт обслуживают на пентиум Д с парой гиг памяти, и то я полагаю это немного и можно поднять производительность до нескольких тысяч пользователей на указанном железе.
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35506109
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBGСтоимость лицензий на оракл + стоимость железа + стоимость администрирования ...


Для телекома как правило не критична

по поводу производительности: может быть как и SQLite требует более высокого профессионализма чем SQLite ?
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35506114
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBGПолтысячи одновременных пользователей документооборота постгрес+эскулайт обслуживают на пентиум Д с парой гиг памяти, и то я полагаю это немного и можно поднять производительность до нескольких тысяч пользователей на указанном железе.

поставь 8 Oracle на Linux и получай удовольствие на том-же пеньке
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35506239
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
Gluk (Kazan) MBGСтоимость лицензий на оракл + стоимость железа + стоимость администрирования ...


Для телекома как правило не критична

До поры до времени - при появлении необхпенькеодимости перенести на кластер из десятка средних серверов вместо одного мощного возникает ощущение присутствия в фильме ужасов :-)

Gluk (Kazan)
по поводу производительности: может быть как и SQLite требует более высокого профессионализма чем SQLite ?

Требует мало того что знания оракла, так еще и существенного времени на администрирование. В последние годы набирают популярность необслуживаемые системы, где или все задается на этапе разработки или система автоподстраивается. Боюсь, написать скрипт, который заменит профессионального админа оракл будет непросто... и стоить этот скрипт будет в разы больше самой системы :-)

На самом деле мы обсуждали только движок - эскулайт, на практике к нему добавляют мощный сервер приложений, и вот уже на этой платформе можно разрабатывать достаточно крупные системы. Любую СУБД с ораклом сравнивать сложно, т.к. это уже не столько база данных, сколько сервер приложений и основную ценность представляет именно как мощная платформа с интегрированной СУБД.
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35506324
Фотография BION
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос к MBG] : а как в sqlite дело обстоит с многопоточным доступом(не многопользовательским) в масштабах одного приложения, в частности insert? Какова вероятность возникновения ошибок?
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35506539
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
BIONВопрос к MBG] : а как в sqlite дело обстоит с многопоточным доступом(не многопользовательским) в масштабах одного приложения, в частности insert? Какова вероятность возникновения ошибок?

Многопоточный доступ работает как в пределах одного приложения, так и при доступе из разных приложений. Если необходимо выполнять модификацию данных из нескольких потоков, удобно указывать таймаут, в пределах которого запрос стоит в очереди и ожидает освобождения блокировки. Ошибки какого рода имеются в виду? Если речь о возникновении коллизий, то это решается созданием очереди запросов (все делает сама библиотека эскулайт, требуется только максимально допустимое время ожидания в очереди указать). Если в работе самой библиотеки, то вероятность повреждения данных очень мала, лично мне такого видеть не приходилось (использую эскулайт уже лет пять как на серверах и КПК). Хотя при многопоточной работе эскулайт с использованием shared cache пользовательское приложение при неправильной работе с потоками имеет возможность повредить базу (по умолчанию эта опция выключена, имхо выигрыш в производительности от ее использования стоит возможного риска только при критической нехватке ресурсов и тщательно вылизанном коде многопоточного приложения). В рассылке эскулайт время от времени появляются пользователи, в режиме shared cache повредившие базу в многопоточном приложении.

При многопользовательском доступе разумно создавать in-memory базу для выполнения длительных операций и к ней монтировать основную базу приложения (для аналитических приложений бывает необходимо создавать отдельную базу на диске для каждого пользователя - когда пользователей сотни и более и каждый может строить отчеты, обрабатывающие многие десятки или сотни мегабайт данных, притом пользоваться однажды созданными отчетами многократно).

Для контроля доступа используется callback-функция autorizer - позволяет для каждого соединения к базе разрешить/запретить определенные операции, например, для потока, выполняющего аудит изменений, разрешить только чтение данных.
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35507268
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBG
В документации же ясно сказано, что этот режим следет использовать на платформах, где операция удаления файла намного более затратная, нежели забивание первого блока файла нулями. Если на вашей платформе это не так, то режим persist вам не подходит.

"The PERSIST journaling mode is useful as an optimization on platforms where deleting a file is much more expensive than overwriting the first block of a file with zeros."

P.S. "Если ничего больше не помогает, прочтите наконец документацию!" (с)

Журнал используется при выполнении операции select? (у меня БД не модифицируется)
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35507283
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
PPA MBG
В документации же ясно сказано, что этот режим следет использовать на платформах, где операция удаления файла намного более затратная, нежели забивание первого блока файла нулями. Если на вашей платформе это не так, то режим persist вам не подходит.

"The PERSIST journaling mode is useful as an optimization on platforms where deleting a file is much more expensive than overwriting the first block of a file with zeros."

P.S. "Если ничего больше не помогает, прочтите наконец документацию!" (с)

Журнал используется при выполнении операции select? (у меня БД не модифицируется)

Не используется, но создаваться может - по команде "begin exclusive;" создается файл журнала и база блокируется монопольно. Интересно только, зачем вам понадобилось для операций чтения эксклюзивную блокировку ставить?..
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35507296
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBG
Не используется, но создаваться может - по команде "begin exclusive;" создается файл журнала и база блокируется монопольно. Интересно только, зачем вам понадобилось для операций чтения эксклюзивную блокировку ставить?..

У меня явной блокировки нет.

Проблема вообще выглядит так
после указания прагмы PRAGMA journal_mode=PERSIST;

Скорость выполнения нескольких десятков тысяч запросов вида
select count(*) from fly_tth where tth=?;
уменьшается в 10-ки раз

убираешь прагму - все становится хорошо.

версия - свежачек 3.6.1 :)
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35507420
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
PPA MBG
Не используется, но создаваться может - по команде "begin exclusive;" создается файл журнала и база блокируется монопольно. Интересно только, зачем вам понадобилось для операций чтения эксклюзивную блокировку ставить?..

У меня явной блокировки нет.

Проблема вообще выглядит так
после указания прагмы PRAGMA journal_mode=PERSIST;

Скорость выполнения нескольких десятков тысяч запросов вида
select count(*) from fly_tth where tth=?;
уменьшается в 10-ки раз

убираешь прагму - все становится хорошо.

версия - свежачек 3.6.1 :)

Сколько транзакций используете? Ну и тест выкладывайте.
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35507437
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBG
Сколько транзакций используете? Ну и тест выкладывайте.

В данном месте вообще не используются транзакции
я не меняю данные - выполняется серия select-ов.

история проблемы тут:
http://forum.wafl.ru/index.php?showtopic=5179&pid=79228&st=0entry79228

diff исправления такой:
http://code.google.com/p/flylinkdc/source/detail?r=387#

т.е. удаление "PRAGMA journal_mode=PERSIST;" решило проблему

после PERSIST тормозят такие вызовы
CFlylinkDBManager::is_old_tth(const TTHValue& p_tth)
CFlylinkDBManager::is_download_tth(const TTHValue& p_tth)

их исходник выглядит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
bool CFlylinkDBManager::is_download_tth(const TTHValue& p_tth)
{
 Lock l(m_cs);
 try {
	if(!m_is_download_tth.get())
		m_is_download_tth = auto_ptr<sqlite3_command>(new sqlite3_command(m_flySQLiteDB,
		"select count(*) from fly_tth where tth=?;"));
    sqlite3_command* l_sql = m_is_download_tth.get();
	l_sql->bind( 1 , p_tth.data,  24 );
	return l_sql->executeint() !=  0 ;
	}
	catch(const database_error& e)
	{
		LogManager::getInstance()->message("is_download_tth: " + e.getError());
		return false;
	}
}

bool CFlylinkDBManager::is_old_tth(const TTHValue& p_tth)
{
    Lock l(m_cs);
	return get_tth_id(p_tth,false) !=  0 ;
}
__int64 CFlylinkDBManager::get_tth_id(const TTHValue& p_tth, bool p_create /*= true*/)
{
	try
	{
	if(!m_get_tth_id.get())
		m_get_tth_id = auto_ptr<sqlite3_command>(new sqlite3_command(m_flySQLiteDB,
		"select max(id) from fly_hash where tth=?;"));
    sqlite3_command* l_sql = m_get_tth_id.get();
	l_sql->bind( 1 , p_tth.data, 24 );
	if (const __int64 l_ID = l_sql->executeint64())
    	return l_ID;
	else 
	if(p_create)
	{
	 sqlite3_transaction l_trans(m_flySQLiteDB);
	 if(!m_insert_fly_hash.get())
		m_insert_fly_hash = auto_ptr<sqlite3_command>(new sqlite3_command(m_flySQLiteDB,
        "insert into fly_hash (tth) values(?)"));
     sqlite3_command* l_sql = m_insert_fly_hash.get();
	 l_sql->bind( 1 , p_tth.data, 24 );
 	 l_sql->executenonquery();
     l_trans.commit();
	 return m_flySQLiteDB.insertid();
	}
	else
 	  return  0 ;
	}
	catch(const database_error& e)
	{
		LogManager::getInstance()->message("SQLite - get_tth_id: " + e.getError());
		return  0 ;
	}
}
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35507486
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
PPA MBG
Сколько транзакций используете? Ну и тест выкладывайте.

В данном месте вообще не используются транзакции
я не меняю данные - выполняется серия select-ов.

история проблемы тут:
http://forum.wafl.ru/index.php?showtopic=5179&pid=79228&st=0entry79228

diff исправления такой:
http://code.google.com/p/flylinkdc/source/detail?r=387#

т.е. удаление "PRAGMA journal_mode=PERSIST;" решило проблему

после PERSIST тормозят такие вызовы
CFlylinkDBManager::is_old_tth(const TTHValue& p_tth)
CFlylinkDBManager::is_download_tth(const TTHValue& p_tth)


Если транзакция не стартует, то указанная прагма ничего не меняет, это можете посмотреть в исходниках эскулайта.

Как пример, пара моих тестовых скриптов (версия SQLite 3.5.9):
Вот скрипт создания базы размером 25365K:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#!/usr/bin/tclsh

package require sqlite3

sqlite3 db test.db
#db eval {PRAGMA legacy_file_format = off}
db eval {DROP TABLE IF EXISTS events}
db eval {CREATE TABLE events (id INTEGER PRIMARY KEY,value INTEGER)}
db transaction {
    for {set i  0 } {$i< 1000000 } {incr i} {
        set value [expr {$i %  500000 }]
        db eval {insert into events (value) values ($value)}
    }
}
db eval {CREATE INDEX events_value_idx ON events(value)}
db close

А вот скрипт для чтения
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
#!/usr/bin/tclsh

package require sqlite3

sqlite3 db test.db
db eval {PRAGMA journal_mode=PERSIST}
for {set i  0 } {$i< 1000000 } {incr i} {
    set value [expr {$i %  500000 }]
    db onecolumn {select id from events where value=$value}
}
db close

Время выполнения последнего примерно 25 секунд и при удалении обсуждаемой прагмы не меняется.

Проблема в вашем враппере. Функция is_old_tth вызывает функцию get_tth_id, в которой создается транзакция и в ней выполняются операции insert. Посмотрите, во время выполнения запросов рядом с файлом вашей базы появляется файл журнала.
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35507502
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBG
Время выполнения последнего примерно 25 секунд и при удалении обсуждаемой прагмы не меняется.

Проблема в вашем враппере. Функция is_old_tth вызывает функцию get_tth_id, в которой создается транзакция и в ней выполняются операции insert. Посмотрите, во время выполнения запросов рядом с файлом вашей базы появляется файл журнала.

возможно и враппер виноват...
но транзакция создается только при условии p_create = true
Код: plaintext
1.
2.
3.
4.
	if(p_create)
	{
	 sqlite3_transaction l_trans(m_flySQLiteDB);
         ...
а is_old_tth передает false
Код: plaintext
1.
  get_tth_id(p_tth,false)
...
Рейтинг: 0 / 0
SQLite VS Gigabase
    #35507511
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBG
db eval {DROP TABLE IF EXISTS events}
db eval {CREATE TABLE events (id INTEGER PRIMARY KEY,value INTEGER)}
[/src]
Время выполнения последнего примерно 25 секунд и при удалении обсуждаемой прагмы не меняется.


у меня есть еще отличия тип кей-поля char(24)
скрипт создания табличек такой:
m_flySQLiteDB.executenonquery("create table IF NOT EXISTS fly_tth(\n"
"tth char(24) PRIMARY KEY NOT NULL);");
m_flySQLiteDB.executenonquery("create table IF NOT EXISTS fly_hash(\n"
"id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, tth char(24) NOT NULL UNIQUE);");

и еще все это под Win32 :)
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 2 из 3
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite VS Gigabase
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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