|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, Тригеры в базе на удаление в таблице есть? Индекс? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 18:27 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, вопрос подкупающий своей наивностью: -а как через форму добавить запись в тбл.Device и вообще её предназначение? -какие данные в поле MeasData и как они туда заносятся? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 18:39 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
PS. Зачем левой рукой доставать правое ухо. Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 18:45 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Кто-нибудь вопрос ТС читал перед тем как отвечать? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 18:48 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
vboretsТригеры в базе на удаление в таблице есть? Индекс? Триггеров нет, индекс на поле deviceid ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 18:51 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
sdkuSynton, вопрос подкупающий своей наивностью: -а как через форму добавить запись в тбл.Device и вообще её предназначение? -какие данные в поле MeasData и как они туда заносятся? Как эти вопросы связаны с решением проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 18:53 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
whereА запрос Код: sql 1.
тоже долго выполняется? Именно этот запрос как раз долго и выполняется. Я понимаю, что долгое выполнение как-то связано с тем, что в единственной записи в таблице DeviceData поле MeasData (OLE-объект) содержит данные размером 35 МБ. Если в это поле записать небольшой объем - время выполнения нормальное (доли секунды). При этом выполнение запроса на удаление в консоли самой БД происхолит быстро, также быстро, как выполнение удаления в программе, запушенной в среде RAD Studio. Зависает именно при запуске exe-шника. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 23:03 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
SyntonЯ понимаю, что долгое выполнение как-то связано с тем, что в единственной записи в таблице DeviceData поле MeasData (OLE-объект) содержит данные размером 35 МБ. Если в это поле записать небольшой объем - время выполнения нормальное (доли секунды). ну тогда как то обходить нужно ситуацию - перед удалением записи: - очищать поле или - писать туда дежурную заглушку малого размера Может бубен + удаление будет короче чем тупо удаление... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 00:23 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
vmag, Но определяться нужная запись будет с помощью WHERE (единственная запись в таблице лишь для примера). А тормоза наблюдаются именно при WHERE, без WHERE тормозов нет. Судя по рассказам ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 00:33 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, Что-то мне сдается, что вопрос вообще не к Акцессу. Вы вообще на каком языке пишете на RadStudio? Сорри, базу не открывал. Думаю, вопрос лучше задать в профильный форум. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 07:40 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
whereНо определяться нужная запись будет с помощью WHERE (единственная запись в таблице лишь для примера). А тормоза наблюдаются именно при WHERE, без WHERE тормозов нет. Судя по рассказам ТС. Все верно, на апдейте с условием WHERE также зависает ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 08:59 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
MrShinSynton, Что-то мне сдается, что вопрос вообще не к Акцессу. Вы вообще на каком языке пишете на RadStudio? Сорри, базу не открывал. Думаю, вопрос лучше задать в профильный форум. RAD Studio C++, доступ к БД через ADO компоненты. Настройкаи коннекта можно посмотреть в коде тестового проекта ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 09:01 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, Чтобы отделить мух от котлет, я бы провел простой эксперимент: в самой Акцессовской базе написал бы элементарную процедурку, которая через ADO удаляет строки по критерию. Если скорость будет такая же медленная, виноват Акцесс или ADO, а если скорось нормальная - что-то не так в программе или в сопряжении программы и ADO. В первом случае я бы еще проверил удаление через DAO или просто запросом из конструктора, если опять медленно, то виновата исключительно база. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 09:36 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
(мысли вслух) а такой запрос, быстро или долго? SELECT DeviceId FROM [DeviceData] WHERE [DeviceId] = 1 В смысле, если не тянуть мегаполе. И можно ли писать так DELETE DeviceId FROM [DeviceData] WHERE [DeviceId] = 1 отличаются ли машины где работа идет быстро и медленно установленными акцессами? какая строка подключения в ADO - через какой драйвер? можно ли данные, которые лежат в огромном поле класть в файлы рядом с БД, а в БД хранить только имена файлов - не станет ли лучше? и удалять файл одновременно с удалением записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 09:48 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
В общем, попробовал я вашу базу, через VBA ADO удаляется безо всяких зависаний, база и ADO не виноваты, копайте C++ и связку С и ADO ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 09:51 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
MrShinЧтобы отделить мух от котлет, я бы провел простой эксперимент: в самой Акцессовской базе написал бы элементарную процедурку, которая через ADO удаляет строки по критерию. Попробую, отпишусь MrShinВ первом случае я бы еще проверил удаление через DAO или просто запросом из конструктора, если опять медленно, то виновата исключительно база. Запрос из конструктора работает нормально, без задержек. А есть пример построения запроса на удаление через DAO? Никогда не использовал этот интерфейс ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 09:52 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
SyntonwhereА запрос Код: sql 1.
тоже долго выполняется? Именно этот запрос как раз долго и выполняется. Я не внимательно прочитал вопрос - вношу поправку в свой ответ. SELECT FROM [DeviceData] WHERE [DeviceId] = 1 выполняется нормально (секунду где-то), зависает DELETE FROM [DeviceData] WHERE [DeviceId] = 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 10:04 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
MrShinЧтобы отделить мух от котлет, я бы провел простой эксперимент: в самой Акцессовской базе написал бы элементарную процедурку, которая через ADO удаляет строки по критерию. Написал запрос на удаление записи по критерию через ADO - удаление моментальное: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 10:33 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, Была идея... Vladimir Baskakovможно ли данные, которые лежат в огромном поле класть в файлы рядом с БД Вот немного видоизмененная тема и только ради того, чтобы where не ползал где не нужно... - скачайте тупо из моего облака базу и без всяких изменений попробуйте как отработает... Ссылка на измененную базу https://cloud.mail.ru/public/LKu4/D8NQMWonq Суть в картинке... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 10:37 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
И все таки, через какой драйвер работает то соединение, которой из внешней программы? Что работает долго - сам делит, или закрытие транзакции с коммитом? Мне думается, что БД Access не самое лучшее место для закладки больших объемов данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 10:50 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Vladimir Baskakovа такой запрос, быстро или долго? SELECT DeviceId FROM [DeviceData] WHERE [DeviceId] = 1 В смысле, если не тянуть мегаполе.Быстро. Даже если тянуть мегаполе - тоже быстро (секунда) Vladimir BaskakovИ можно ли писать так DELETE DeviceId FROM [DeviceData] WHERE [DeviceId] = 1 Писать так можно, но быстрее не стало. Vladimir Baskakovотличаются ли машины где работа идет быстро и медленно установленными акцессами?Нет, от версии Access не зависит. Зависает на Win7x64 с Access 2016, на Win7x64 с Access 2010, но, например, на Win10x64 с Access 2016 все быстро Vladimir Baskakovкакая строка подключения в ADO - через какой драйвер?String DatabaseFile = "d:\\test2.mdb"; String ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DatabaseFile + ";Persist Security Info=False"; Vladimir Baskakovможно ли данные, которые лежат в огромном поле класть в файлы рядом с БД, а в БД хранить только имена файлов - не станет ли лучше? и удалять файл одновременно с удалением записи.Нет, не прокатит, архитектурой приложения этого не предусмотрено. Все в одном файле БД Access ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 10:59 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Vladimir BaskakovЧто работает долго - сам делит, или закрытие транзакции с коммитом? Как это проверить в С++? Мне думается, что БД Access не самое лучшее место для закладки больших объемов данных.[/quot]Приведенный пример скорее исключение, в основном объем данных в каждой записи много меньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:04 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
А какой сейчас размер файла с базой? При налчии поля с двоичными данными очень быстро можно достигнуть предела в 2 Гб, после чего начинаются ошибки, тормоза и прочие чудеса. Или у вас тормозит даже на одной записи на файле, который вы выложили? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:05 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
А вот такой драйвер Microsoft.ACE.OLEDB.12.0 отсель взят сей http://www.vlsoftware.net/documentation/exportizer/connection-strings-examples.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:05 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
SyntonVladimir BaskakovЧто работает долго - сам делит, или закрытие транзакции с коммитом? Как это проверить в С++? Мне думается, что БД Access не самое лучшее место для закладки больших объемов данных.Приведенный пример скорее исключение, в основном объем данных в каждой записи много меньше.[/quot] показать сишный код. Вот прямо как написан . И оттрассировать ))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:06 |
|
|
start [/forum/topic.php?fid=45&msg=39388204&tid=1612790]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 367ms |
total: | 498ms |
0 / 0 |