ms-access вопрос о загрузке данных - PullRequest
1 голос
/ 27 октября 2009

У меня довольно сложная форма. как вы можете видеть ниже:

альтернативный текст http://img9.imageshack.us/img9/2465/test2xk.jpg

однако, у меня всего 8 МБ данных в базе данных.

способ, которым это работает, - это заполнение списка слева до конца всеми именами записей. при прокрутке записей загружаются соответствующие данные для каждой записи

когда я полностью прокручиваю список слева, по какой-то причине загрузка каждой записи во все соответствующие поля занимает около 2 секунд. нет загрузки картинок или чего-то огромного. база данных находится локально. он просто загружает, может быть, максимум 100 КБ для каждой записи

Можете ли вы сказать мне, должно ли это занять так много времени, чтобы загрузить?

это может быть проблема с запросом?

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

SELECT u.id,u.title,u.title,u.first,u.last FROM 
  (((tblusers u LEFT JOIN tbluserstudentteacher 
     ON u.id = tbluserstudentteacher.student_teacher_user_id) 
     LEFT JOIN tblUsersSubjects ON u.id = tblUsersSubjects.user_id) 
     LEFT JOIN tblUserAvailability ON u.id=tblUserAvailability.user_id) 
     LEFT JOIN chavrusas ON u.id=chavrusas.luser_id 
       WHERE 1=1 AND (u.gender) LIKE 'm*' 
       AND (chavrusas.luser_type)='shliach' 
       AND (chavrusas.ruser_type)='shliach' AND (u.last LIKE 'd*') 
 GROUP BY u.id, u.title, u.title, u.first, u.last 
 ORDER BY last;

Ответы [ 4 ]

3 голосов
/ 27 октября 2009

Я заметил, что у вас есть несколько подчиненных форм, вы можете получить более высокую производительность, если не загрузите все подчиненные формы до тех пор, пока они не понадобятся: Не ухудшает ли производительность использование подчиненных форм в MS Access?

1 голос
/ 27 октября 2009

После переформатирования SQL создается впечатление, что вы выполняете некоторые ненужные объединения: это объединения tbluserstudentteacher, tblUsersSubjects и tblUserAvailability. Вы можете упростить (и я сильно подозреваю, что улучшить производительность) значительно. Должно работать что-то вроде следующего:

SELECT u.id, u.title, u.first, u.last
  FROM (tblusers u LEFT JOIN chavrusas c ON u.id = c.luser_id
  AND u.gender LIKE 'm*'
  AND u.last LIKE 'd*'
  AND c.luser_type = 'shliach'
  AND c.ruser_type = c.luser_type)
ORDER BY last;

GROUP BY также не подходит или не нужен, поскольку у вас нет агрегатных функций, которые привели бы к группировке.

Я подозреваю, что вы не разместили здесь свой настоящий SQL из-за ненужных таблиц GROUP BY и JOINed.

1 голос
/ 27 октября 2009

Используете ли вы dlookups где-либо или какие-либо другие вычисленные элементы управления = даже более простые элементы замедляют загрузку / обновление формы ...

1 голос
/ 27 октября 2009

Этот SQL плох, потому что вы действительно хотите сгруппировать по этим полям? Кажется, что этот SQL-оператор был составлен и выглядел так, как будто он работал, поэтому вы решили оставить его таким.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...