Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Непонятные тормоза в запросе на удаление
 
 автор: Дядя Федор   (01.06.2012 в 13:32)   личное сообщение
 
 

Есть примитивный запрос.

CurrentDb.Execute "Delete  FROM Tbl1 WHERE Tbl1.IdZZ=" &  IdZZTmp & " AND Tbl1.IdZZO = 0;"


Так вот.
При работе в сети (терминальной сессии) жутко тормозит.
Причем только он один.
Таких запросов в базе тьма - все летают.

Есть мысли почему такое может быть?

  Ответить  
 
 автор: osmor   (01.06.2012 в 15:05)   личное сообщение
 
 

каскадных удалений нет?
Сколько индексов на таблице?

  Ответить  
 
 автор: kot_k_k   (01.06.2012 в 15:19)   личное сообщение
 
 

Tbl1.IdZZ=" & IdZZTmp & " AND Tbl1.IdZZO = 0

тут Null - не встречается, может обрабатывает Null=0 и тупит.

  Ответить  
 
 автор: Дядя Федор   (01.06.2012 в 15:50)   личное сообщение
 
 

NULL не может быть

  Ответить  
 
 автор: Дядя Федор   (01.06.2012 в 15:48)   личное сообщение
 
 

каскадных нет

На локальной машине даже воспроизвести эффект не удается. Глазом не успеешь моргнуть - Готово.

Может рекордсетом попробовать?(Глупость)

Мистика, блин.
Пойду тяпну.

  Ответить  
 
 автор: час   (04.06.2012 в 00:04)   личное сообщение
 
 

надо методом тыка искать. Меняя запрос(условия и т.п.)
Если ты не видишь причину, то с расстояния в xxxx км. тем более х.з.
============================================
мну на ум ничё не пришло...
А можно заменить
WHERE Tbl1.IdZZ=" & IdZZTmp & " AND Tbl1.IdZZO = 0
на типа
WHERE not(Tbl1.IdZZ)

Как то не соображу как написать - без значения типа.

  Ответить  
 
 автор: Дядя Федор   (04.06.2012 в 07:59)   личное сообщение
 
 

методом тыка искал. нулЁво.
Вопрос не про синтаксис запроса.
Запрос-то пустяковый.
А просто, может у кого было такое.
Видимо, дело в сети...

  Ответить  
 
 автор: snipe   (04.06.2012 в 08:26)   личное сообщение
 
 

может
попробуй на вирусы проверить нехороший комп

  Ответить  
 
 автор: osmor   (04.06.2012 в 09:13)   личное сообщение
 
 

вирус вряд ли.
скорее АНТИвирус.

  Ответить  
 
 автор: snipe   (04.06.2012 в 09:51)   личное сообщение
 
 

сидел у меня один
вообще сетку вешал

  Ответить  
 
 автор: osmor   (04.06.2012 в 10:27)   личное сообщение
 
 

в этом случае тормоза при всех запросах будут и даже скорее всего во всех приложениях которые сеть используют

  Ответить  
 
 автор: Дядя Федор   (04.06.2012 в 11:13)   личное сообщение
 
 

Нехороший комп - это мощный сервер.
Клиенты сидят в терминальной сессии.
К тому же все запросы вешались бы. А тут один....
Ищем, ищем.

  Ответить  
 
 автор: osmor   (04.06.2012 в 11:24)   личное сообщение
 
 

может есть смысл посмотреть план выполнения запроса?
Вообще я бы копал в сторону индексов.

  Ответить  
 
 автор: snipe   (04.06.2012 в 11:58)   личное сообщение
 
 

а вот эта переменная
она откуда получается

  Ответить  
 
 автор: Дядя Федор   (04.06.2012 в 12:46)   личное сообщение
 
 

поле в источнике данных формы

  Ответить  
 
 автор: snipe   (04.06.2012 в 13:09)   личное сообщение
 
 

была у меня ситуация когда строка в Execute собираться не хотела
приходилось сначала собирать ее
а потом в Execute подсовывать
примерно так

dim strSQL as String
strSQL="Delete ..........."
currentDb.Execute strSQL

  Ответить  
 
 автор: Дядя Федор   (05.06.2012 в 08:03)   личное сообщение
 
 

Все перепробовал. и через docmd.runsql делал.
Сегодня сделал через рекордсет. Теоретически должно быть медленнее.Но чем черт не шутит. Посмотрим. Щас юзеры подтянутся.

  Ответить  
 
 автор: час   (06.06.2012 в 12:59)   личное сообщение
72 Кб.
 
 

Подтянуться и сржрут!
Запасись аргументами!

  Ответить  
 
 автор: Дядя Федор   (13.06.2012 в 14:23)   личное сообщение
 
 

Через рекордсет помогло. Чудеса.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList