powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Длительное выполнение запроса на удаление
25 сообщений из 66, страница 2 из 3
Длительное выполнение запроса на удаление
    #39387891
vborets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synton,

Тригеры в базе на удаление в таблице есть?
Индекс?
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39387898
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synton,
вопрос подкупающий своей наивностью:
-а как через форму добавить запись в тбл.Device и вообще её предназначение?
-какие данные в поле MeasData и как они туда заносятся?
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39387901
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS.
Зачем левой рукой доставать правое ухо.
Код: vbnet
1.
2.
CurrentDb.Execute "DELETE FROM [DeviceData] WHERE [DeviceId] = 1" 
CurrentDb.Execute "DELETE FROM [DeviceData] WHERE [DeviceId] =" & me.[DeviceId] 'или так
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39387903
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь вопрос ТС читал перед тем как отвечать?

:)
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39387905
Synton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vboretsТригеры в базе на удаление в таблице есть?
Индекс?
Триггеров нет, индекс на поле deviceid
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39387907
Synton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuSynton,
вопрос подкупающий своей наивностью:
-а как через форму добавить запись в тбл.Device и вообще её предназначение?
-какие данные в поле MeasData и как они туда заносятся?
Как эти вопросы связаны с решением проблемы?
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39387987
Synton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
whereА запрос
Код: sql
1.
SELECT FROM [DeviceData] WHERE [DeviceId] = 1

тоже долго выполняется?
Именно этот запрос как раз долго и выполняется.

Я понимаю, что долгое выполнение как-то связано с тем, что в единственной записи в таблице DeviceData поле MeasData (OLE-объект) содержит данные размером 35 МБ. Если в это поле записать небольшой объем - время выполнения нормальное (доли секунды).
При этом выполнение запроса на удаление в консоли самой БД происхолит быстро, также быстро, как выполнение удаления в программе, запушенной в среде RAD Studio. Зависает именно при запуске exe-шника.
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388025
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SyntonЯ понимаю, что долгое выполнение как-то связано с тем, что в единственной записи в таблице DeviceData поле MeasData (OLE-объект) содержит данные размером 35 МБ. Если в это поле записать небольшой объем - время выполнения нормальное (доли секунды).

ну тогда как то обходить нужно ситуацию - перед удалением записи:
- очищать поле или
- писать туда дежурную заглушку малого размера
Может бубен + удаление будет короче чем тупо удаление...
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388031
where
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,

Но определяться нужная запись будет с помощью WHERE (единственная запись в таблице лишь для примера).
А тормоза наблюдаются именно при WHERE, без WHERE тормозов нет.
Судя по рассказам ТС.
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388092
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synton,
Что-то мне сдается, что вопрос вообще не к Акцессу. Вы вообще на каком языке пишете на RadStudio? Сорри, базу не открывал. Думаю, вопрос лучше задать в профильный форум.
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388113
Synton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
whereНо определяться нужная запись будет с помощью WHERE (единственная запись в таблице лишь для примера).
А тормоза наблюдаются именно при WHERE, без WHERE тормозов нет.
Судя по рассказам ТС.
Все верно, на апдейте с условием WHERE также зависает
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388114
Synton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShinSynton,
Что-то мне сдается, что вопрос вообще не к Акцессу. Вы вообще на каком языке пишете на RadStudio? Сорри, базу не открывал. Думаю, вопрос лучше задать в профильный форум.
RAD Studio C++, доступ к БД через ADO компоненты. Настройкаи коннекта можно посмотреть в коде тестового проекта
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388145
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synton,
Чтобы отделить мух от котлет, я бы провел простой эксперимент: в самой Акцессовской базе написал бы элементарную процедурку, которая через ADO удаляет строки по критерию. Если скорость будет такая же медленная, виноват Акцесс или ADO, а если скорось нормальная - что-то не так в программе или в сопряжении программы и ADO. В первом случае я бы еще проверил удаление через DAO или просто запросом из конструктора, если опять медленно, то виновата исключительно база.
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388154
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(мысли вслух)

а такой запрос, быстро или долго?

SELECT DeviceId FROM [DeviceData] WHERE [DeviceId] = 1
В смысле, если не тянуть мегаполе.

И можно ли писать так
DELETE DeviceId FROM [DeviceData] WHERE [DeviceId] = 1

отличаются ли машины где работа идет быстро и медленно установленными акцессами? какая строка подключения в ADO - через какой драйвер? можно ли данные, которые лежат в огромном поле класть в файлы рядом с БД, а в БД хранить только имена файлов - не станет ли лучше? и удалять файл одновременно с удалением записи.
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388158
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, попробовал я вашу базу, через VBA ADO удаляется безо всяких зависаний, база и ADO не виноваты, копайте C++ и связку С и ADO
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388159
Synton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShinЧтобы отделить мух от котлет, я бы провел простой эксперимент: в самой Акцессовской базе написал бы элементарную процедурку, которая через ADO удаляет строки по критерию.
Попробую, отпишусь

MrShinВ первом случае я бы еще проверил удаление через DAO или просто запросом из конструктора, если опять медленно, то виновата исключительно база.
Запрос из конструктора работает нормально, без задержек.
А есть пример построения запроса на удаление через DAO? Никогда не использовал этот интерфейс
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388165
Synton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SyntonwhereА запрос
Код: sql
1.
SELECT FROM [DeviceData] WHERE [DeviceId] = 1

тоже долго выполняется?
Именно этот запрос как раз долго и выполняется.

Я не внимательно прочитал вопрос - вношу поправку в свой ответ. SELECT FROM [DeviceData] WHERE [DeviceId] = 1 выполняется нормально (секунду где-то), зависает DELETE FROM [DeviceData] WHERE [DeviceId] = 1
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388188
Synton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
Option Compare Database
Option Explicit

Sub DeleteRecord()
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim strSql As String
    Dim i As Integer
    
    Set cn = CurrentProject.Connection
    Set rs = New ADODB.Recordset
   
    strSql = "SELECT * FROM [DeviceData] WHERE [DeviceId] = 1;"
    rs.Open strSql, cn, adOpenDynamic, adLockOptimistic
    
    rs.MoveFirst
    rs.Delete

    rs.Close
    
    Set rs = Nothing
    Set cn = Nothing
End Sub
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388193
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synton,
Была идея...
Vladimir Baskakovможно ли данные, которые лежат в огромном поле класть в файлы рядом с БД
Вот немного видоизмененная тема и только ради того, чтобы where не ползал где не нужно...
- скачайте тупо из моего облака базу и без всяких изменений попробуйте как отработает...
Ссылка на измененную базу
https://cloud.mail.ru/public/LKu4/D8NQMWonq
Суть в картинке...
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388204
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И все таки, через какой драйвер работает то соединение, которой из внешней программы?
Что работает долго - сам делит, или закрытие транзакции с коммитом?

Мне думается, что БД Access не самое лучшее место для закладки больших объемов данных.
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388215
Synton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388220
Synton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir BaskakovЧто работает долго - сам делит, или закрытие транзакции с коммитом? Как это проверить в С++?

Мне думается, что БД Access не самое лучшее место для закладки больших объемов данных.[/quot]Приведенный пример скорее исключение, в основном объем данных в каждой записи много меньше.
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388221
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой сейчас размер файла с базой? При налчии поля с двоичными данными очень быстро можно достигнуть предела в 2 Гб, после чего начинаются ошибки, тормоза и прочие чудеса.

Или у вас тормозит даже на одной записи на файле, который вы выложили?
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388222
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот такой драйвер

Microsoft.ACE.OLEDB.12.0
отсель взят сей
http://www.vlsoftware.net/documentation/exportizer/connection-strings-examples.htm
...
Рейтинг: 0 / 0
Длительное выполнение запроса на удаление
    #39388224
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SyntonVladimir BaskakovЧто работает долго - сам делит, или закрытие транзакции с коммитом? Как это проверить в С++?

Мне думается, что БД Access не самое лучшее место для закладки больших объемов данных.Приведенный пример скорее исключение, в основном объем данных в каждой записи много меньше.[/quot]

показать сишный код. Вот прямо как написан . И оттрассировать )))))
...
Рейтинг: 0 / 0
25 сообщений из 66, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Длительное выполнение запроса на удаление
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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