Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26113
Рейтинг: 2126
#121: 2007-09-04 00:04:07 ЛС | профиль | цитата
Konst, а ты первую страницу топика открывал? Не поленись, открой и посмотри, какая версия текущая.

[size=-2]------ Добавлено в 00:04
Народ! Как правильно создать индексацию по столбцу, по которому будет происходить сортировка, меня волнует вопрос об одинаковых значениях в полях столбца, повлияют ли они на индексацию. Я еще заметмл, что можно создать восходящую и нисходящую индексацию, каким запросом это делается? Вопрос про приватное редактирование, несколькими постами выше, тоже остался без ответа.
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#122: 2007-09-04 00:13:11 ЛС | профиль | цитата
nesco писал(а):
Как правильно создать индексацию по столбцу, по которому будет происходить сортировка, меня волнует вопрос об одинаковых значениях в полях столбца, повлияют ли они на индексацию

зависит от типа индекса. Primary key не даст сделать в колонке два одинаковых значения.

ограничение доступа к БД во время критических действий обычно осущевстляется с помощью транзакций. В SQLite по идее запросы в рамках одной транзакции помещаются между BEGIN и COMMIT
карма: 27
0
Ответов: 1891
Рейтинг: 110
#123: 2007-09-04 00:17:30 ЛС | профиль | цитата
nesco, писал(а):
Вопрос про приватное редактирование, несколькими постами выше, тоже остался без ответа.


Про какое такое приватное редактирование?
карма: 0
%time%
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#124: 2007-09-04 00:19:56 ЛС | профиль | цитата
Alexbootch, да вот про это
nesco писал(а):
Еще есть маленький вопрос -- а есть ли запросы, позволяющие только одному пользователю работать с базой, например: я посылаю такой запрос о захвате базы на редактирование, а другие, кто попытается открыть после меня, получат фигу, и так до тех пор, пока не будет послан запрос об окончании редактирования?

Ну может я не так выразился, назовем это "монопольным доступом". Те, мне нужно получить монопольный доступ к базе.
карма: 22

0
Ответов: 1891
Рейтинг: 110
#125: 2007-09-04 00:27:07 ЛС | профиль | цитата
D. Richard Hipp писал(а):
Since SQLite reads and writes an ordinary disk file, the only access permissions that can be applied are the normal file access permissions of the underlying operating system. The GRANT and REVOKE commands commonly found on client/server RDBMSes are not implemented because they would be meaningless for an embedded database engine.

карма: 0
%time%
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#126: 2007-09-04 00:33:45 ЛС | профиль | цитата
Dilma писал(а):
Primary key не даст сделать в колонке два одинаковых значения

Нет, столбец не Primary key -- обычный, но нужна быстрая сортировка именно по этому сттолбцу.
Dilma писал(а):
В SQLite по идее запросы в рамках одной транзакции помещаются между BEGIN и COMMIT

Вроде на сайте производителя написано, что транзакции в SQLite включаются автоматически
SQLite писал(а):
Any command that changes the database (basically, any SQL command other than SELECT) will automatically start a transaction if one is not already in effect. Automatically started transactions are committed at the conclusion of the command


[size=-2]------ Добавлено в 00:33
Alexbootch, а что по индексации, чего-нибудь посоветуешь.
карма: 22

0
Ответов: 1891
Рейтинг: 110
#127: 2007-09-04 00:35:01 ЛС | профиль | цитата
Кстати, в SQLite есть так называемые режимы блокироки, но думаю тебе это не подойдет для "монопольного доступа"
карма: 0
%time%
0
Администрация
Ответов: 15295
Рейтинг: 1519
#128: 2007-09-04 00:41:28 ЛС | профиль | цитата
nesco писал(а):
Нет, столбец не Primary key -- обычный, но нужна быстрая сортировка именно по этому сттолбцу.

любой индекс - это сортированные в некотором порядке данные. Primary index к тому же исключает вероятность дублирования.

nesco писал(а):
Вроде на сайте производителя написано, что транзакции в SQLite включаются автоматически

и не закрываются никогда видимо?

[size=-2]------ Добавлено в 00:41
пунтк 7.0 по приведенной выше ссылке
карма: 27
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#129: 2007-09-04 00:51:31 ЛС | профиль | цитата
Alexbootch, скорее вот это то, что нужно
SQLite писал(а):
After a BEGIN EXCLUSIVE, you are guaranteed that no other thread or process will be able to read or write the database until the transaction is complete

карма: 22

0
Ответов: 1891
Рейтинг: 110
#130: 2007-09-04 00:51:32 ЛС | профиль | цитата
nesco, писал(а):
Alexbootch, а что по индексации, чего-нибудь посоветуешь.


nesco, а индексацию по PRIMARY KEY хочешь проводить или по другому какому-нибудь полю таблицы?
карма: 0
%time%
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#131: 2007-09-04 00:57:47 ЛС | профиль | цитата
Dilma писал(а):
и не закрываются никогда видимо?

Ну да, до закрытия базы
SQLite писал(а):
In autocommit mode, all changes to the database are committed as soon as all operations associated with the current database connection complete


[size=-2]------ Добавлено в 00:57
Alexbootch писал(а):
nesco, а индексацию по PRIMARY KEY хочешь проводить или по другому какому-нибудь полю таблицы?


nesco писал(а):
Нет, столбец не Primary key -- обычный, но нужна быстрая сортировка именно по этому сттолбцу

В этом столбце обязательно возможны одинаковые значения, которые и надо быстро отобрать и вывести в таблицу, но уже со всеми параметрами, и чем быстрее, тем лучше.
карма: 22

0
Ответов: 1891
Рейтинг: 110
#132: 2007-09-04 01:33:55 ЛС | профиль | цитата
BEGIN EXCLUSIVE это конечно не монопольный доступ, да и работать будет только в течении одной транзакции

[size=-2]------ Добавлено в 01:17
nesco, писал(а):
В этом столбце обязательно возможны одинаковые значения, которые и надо быстро отобрать и вывести в таблицу, но уже со всеми параметрами, и чем быстрее, тем лучше.


Главное, что бы одинаковых значений не было слишком много, т.е. не рекомендуется создавать индексы по столбцам, число различных значений которых невелико. В указанном случае запрос вызывает непрерывный поток обращений от таблицы к индексу и наоборот возвращая при этом большой объем данных, серверу же базы данных придется постоянно читать сначала данные из индекса, затем соответствующую строку из таблицы и т. д

[size=-2]------ Добавлено в 01:33
Konst, писал(а):
Для работы с Hiasm новой версии SQLite достаточно замены DLL


Да.
карма: 0
%time%
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#133: 2007-09-04 01:38:10 ЛС | профиль | цитата
Alexbootch писал(а):
BEGIN EXCLUSIVE это конечно не монопольный доступ, да и работать будет только в течении одной транзакции

Но с учетом тoго, что
SQLite писал(а):
In autocommit mode, all changes to the database are committed as soon as all operations associated with the current database connection complete
Получается одна транзакция за одно открытие/закрытие базы для редакции, похоже на псеводомонопольный режим

Alexbootch писал(а):
Главное, что бы одинаковых значений не было слишком много

Значит, всеже можно. Ладно, проверим на реальной базе. Индекс я создал, только концепция не совсем понятна была с одинаковыми значениями. А что скажешь про индексацию в возрастающем/убывающем порядке, как такую индексацию сделать?
карма: 22

0
Ответов: 1891
Рейтинг: 110
#134: 2007-09-04 01:41:45 ЛС | профиль | цитата
nesco, кстати учти, что использование индекса замедляет операции модификации DML (такие как INSERT и DELETE).
карма: 0
%time%
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#135: 2007-09-04 01:48:35 ЛС | профиль | цитата
Alexbootch, это я уже прочитать успел, но думаю времени на запись одной строки хватит, утром проверю на большом потоке, будет срыв или нет.
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)