|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Пишу проект с использованием RadStudio XE 10.1. Обращаюсь к базе данных в формате Microsoft Access через ADO. В базе данных хранится кривая с большим количеством точек(больше миллиона). Данные в базе должны обновляться(сначала удаление, затем вставка новых данных), для удаления используется запрос вида: Query = "DELETE FROM [DeviceData] WHERE [DeviceId] = " + String(DeviceId); При выполнении запроса на удаление происходит "зависание" более чем на 2 минуты. При этом запрос на добавление аналогичной записи вида: INSERT INTO происходит значительно быстрее - около 20 секунд. Зависание наблюдается только в готовом exe-файле(не важно debug или release версия), при работе в среде данный баг не проявляется. При этом на одних машинах зависание проявляется, на других удаление происходит почти мгновенно. С чем может быть связано данное подвисание? Прикрепляю тестовый проект. Ссылка на файл базы: https://cloud.mail.ru/public/2Qio/GmEvffzTg ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 13:50 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
SyntonПрикрепляю тестовый проект. Ссылка на файл базы: здесь только 2 записи и OLE на 35мб ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 14:33 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, Все верно, запись одна. При ее удалении и происходит зависание ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 14:50 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Народ,очень нужна помощь в решении этой проблемы. Месяц не можем понять в чем дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 13:52 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, 1.почему Вы используете для слияния строк "+" а не "&" 2. функция String имеет ДВА обязательных аргумента ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 14:42 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
ПыСы: как я не морщил лоб-не въехал:какие же записи Вы хотите отобрать ( при чем здесь строка заданной длины) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 14:49 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
sdku, 1. "+" - так исторически сложилось. А разве это как-то влияет на текст запроса? 2. В коде String - конструктор класса строки, достаточно одного аргумента: UnicodeString(const char* src). А String в Embarcadero С++ - это псевдоним UnicodeString: typedef UnicodeString String ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 15:07 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
sdku, Логика кода - удалить существующую и потом добавить новую строку в таблицу DeviceData. Удаление обычным запросом DELETE FROM происходит более 3-х минут, последующий INSERT INTO тех же данных в записи - 20 секунд. Проблема - долгое удаление записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 15:11 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, что в таблице одна запись? (зачем что-либо отбирать) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 15:32 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
sdku, В рабочей базе конечно не одна. Это для публикации я подготовил тестовый пример, где оставил только одну запись. Прикрепил скриншот со временем удаления ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 15:45 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
sdku, "DELETE FROM [DeviceData] WHERE [DeviceId] = " + String(DeviceId); перевод: Удалить из таблицы [DeviceData] записи, в которых поле [DeviceId] = String(DeviceId) (чему я так и не понял) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 15:59 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Я вот о чем: ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 16:11 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
sdku, Удалить из таблицы [DeviceData] записи, в которых поле [DeviceId] = 1. Здесь String(DeviceId) - преобразование целочисленного значения в текст. 1-я строка обработчика Button1Click: int DeviceId = 1; ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 16:12 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
sdku, Так ОК? Query = "DELETE FROM [DeviceData] WHERE [DeviceId] = " + IntToStr(DeviceId); ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 16:16 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, у вас там это... Код: plaintext 1.
На каких машинах летает exe, а на каких подвисает ? ОС 32 / 64 ? В среде то понятно, что работает ... А Код: plaintext 1.
в С++ это случаем не 100 секунд? (подключаемая библиотека dos.h) если оно где то цепляется, то вот и есть возможное зависание на пару минут... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 16:30 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
vmag, От битности не зависит, может проявляться и там и там. От мощности машины тоже. vmagв С++ это случаем не 100 секунд? Это миллисекунды: VOID WINAPI Sleep( _In_ DWORD dwMilliseconds ); Закомментировал строки с #include <dinkumware64/chrono> ... std::chrono и Sleep(100); - ситуация не изменилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 16:43 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, в примере,который Вы приложили поле [DeviceId] имеет тип Числовой с размером Длинное целое (и как там окажется дробь ?) и по любому будет WHERE [DeviceId]= [DeviceId]-бессмысленное выражение (всегда TRUE ничего не отбирающее) если это не секрет (гос.тайна) покажите реальную таблицу и озвучьте критерий удаления записей ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 16:52 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
sdku, Это и есть реальная таблица, только с одной записью. Вот запрос и значение переменной Query: ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 16:57 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, А если попробовать запрос на удаление без WHERE, запись-то все равно в примере одна? Просто в виде эксперимента пока. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 17:16 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
where, В этом случае "зависание" пропадает ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 17:23 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, тогда напишите при совершении какого действия (нажатие кнопки или чё другое) Вы хотите удалить запись. И все же ответьте: каков критерий отбора записей для удаления? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 17:31 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, а если в схеме данных удалить связь между таблицами и вернуть WHERE ? просто интересно... ну или для этого случая вообще оставить только одну таблицу DeviceData, просто интересно, что за хренотень такая... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 17:41 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
sdkuтогда напишите при совершении какого действия (нажатие кнопки или чё другое) Вы хотите удалить запись. Да, при нажатии кнопки нужно удалить запись с известным DeviceId (в данном случае DeviceId = 1) sdkuИ все же ответьте: каков критерий отбора записей для удаления? Критерий только один - в строку формирования запроса на удаление передается DeviceId. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 17:57 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
vmagа если в схеме данных удалить связь между таблицами и вернуть WHERE ? просто интересно... ну или для этого случая вообще оставить только одну таблицу DeviceData, просто интересно, что за хренотень такая... Пробовал уже. И связь удалял, и индексы ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 17:58 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, А запрос Код: sql 1.
тоже долго выполняется? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 18:02 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#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 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
MrShinА какой сейчас размер файла с базой? При налчии поля с двоичными данными очень быстро можно достигнуть предела в 2 Гб, после чего начинаются ошибки, тормоза и прочие чудеса. Или у вас тормозит даже на одной записи на файле, который вы выложили?Размер тестовой БД - 35 МБ ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:07 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Vladimir Baskakovпоказать сишный код. Вот прямо как написан . И оттрассировать ))))) Тестовый проект прилеплен к первому топику, вот кусок кода на удаление. Зависает на ADOCommand->Execute(), после отвисания переходит на строчку с while Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:11 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, vmagВот немного видоизмененная тема и только ради того, чтобы where не ползал где не нужно... - скачайте тупо из моего облака базу и без всяких изменений попробуйте как отработает... Ссылка на измененную базу https://cloud.mail.ru/public/LKu4/D8NQMWonq Можете не пробовать... я в этой своей бд запустил ваш запрос и получил ваше время удаления больше 2-минут... Машина очень шустрая, W7 (64), акцесс 2003... жють... даже без where на OLE ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:12 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
vmagМожете не пробовать... я в этой своей бд запустил ваш запрос и получил ваше время удаления больше 2-минут... Машина очень шустрая, W7 (64), акцесс 2003... жють... даже без where на OLEУже попробовал - зависает. Хотя идея была хорошая ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:17 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, У меня такое ощущение, что перед удалением система пробует искать всё, что есть в системе, связанное с объектом в OLE и если на машине ничего нет, то она долго думает чо с этим объектом делать чтобы правильно его покоцать... не? ну или наоборот - если что-то есть... А что там лежит, если не секрет? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:21 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
vmagSynton, У меня такое ощущение, что перед удалением система пробует искать всё, что есть в системе, связанное с объектом в OLE и если на машине ничего нет, то она долго думает чо с этим объектом делать чтобы правильно его покоцать... не? ну или наоборот - если что-то есть... А что там лежит, если не секрет?Я грешу на какой-нибудь процесс "дефрагментации" памяти или пересборку индексов ядром Access, и что этот процесс зависит от ОС (на Win10 не зависает). Данные - кривая замера параметра во времени ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:30 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, Sleep(100) Эта функция не определена стандартом ANSI С. Функция sleep() приостанавливает выполнение программы на время, задаваемое параметром time. Время задается в секундах. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:35 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Synton, Да, похоже ваша прога не причем... раз я у себя без неё вышел на те же 2 минуты... я даже в своей измененной БД запускаю запрос на удаление тупо в самой таблице OLE где в where первичный ключ - и те же 2 минуты... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:36 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, было уже, ремили, не помогло... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:36 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
vmagПЕНСИОНЕРКА, было уже, ремили, не помогло... попробуйте поставить Sleep(5) может где-то еще этот параметр задается ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:38 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Vladimir BaskakovА вот такой драйвер Microsoft.ACE.OLEDB.12.0 отсель взят сей http://www.vlsoftware.net/documentation/exportizer/connection-strings-examples.htm Тормоза пропали на другом драйвере!!! Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:39 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАпопробуйте поставить Sleep(5) может где-то еще этот параметр задаетсяВообще без while запускал, не помогло ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:40 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
vmagМожете не пробовать... я в этой своей бд запустил ваш запрос и получил ваше время удаления больше 2-минут... Машина очень шустрая, W7 (64), акцесс 2003... жють... даже без where на OLEvmag, можете на своей БД попробовать другой драйвер - ACE? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:42 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
Syntonvmag, можете на своей БД попробовать другой драйвер - ACE? К сожалению нет... я сейчас в таком месте где и не комильфо, и возможностей мало... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 11:52 |
|
Длительное выполнение запроса на удаление
|
|||
---|---|---|---|
#18+
[quot Synton]Vladimir BaskakovА вот такой драйвер Microsoft.ACE.OLEDB.12.0 String ConnectionString = "Provider= Microsoft.ACE.OLEDB.12.0 ;Data Source=" + DatabaseFile + ";Persist Security Info=False"; а, мне так и подумалось. старый jet драйвер идет со времен .mdb формата. Для accdb - родной драйвер - ace. Ну не суть, главное - отладили? ну и хорошо, приятной пятницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 12:16 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1612790]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 173ms |
0 / 0 |