Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SQL запросы в большой базе / 20 сообщений из 20, страница 1 из 1
24.11.2003, 15:01
    #32333088
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
Привет всем.
таблицы (их около 15) насчитывают более 400 000 записей каждая и аксесс жутко виснет и тормозит при выполнии запроса. я слышал в sql есть функции которые позволяют решать эту проблему.
Спасибо.
...
Рейтинг: 0 / 0
24.11.2003, 15:14
    #32333121
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
Есть
Код: plaintext
Delete * From [ИмяТаблицы] 
исполни этот нехитрый запрос для каждой таблицы, и будет у тебя все летать.
Если же данные нужны (зачем-то) - тогда попробуй индексов понастроить.
...
Рейтинг: 0 / 0
24.11.2003, 15:17
    #32333126
SiriusB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
верится с трудом :?)

Access жутко тормозит и виснет если по такому набору записей применить фильтр или сортировку

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

да будет Вам известно Access как и Lotus Approach выполняет спекулятивные запросы :?)

ОНИ выдают результат только первой страницы на екран НЕМЕДЛЕННО, а в то время как Вы "разинув рот" смотрите на результат якобы "выполненного" запроса - данные СУБД дико досчитывают их до конца

данное легко проверить если после отображения "результатов" запроса нажать на кнопку Перейти на последнюю запись

Вот тогда будет то о чем Вы писали :?)
...
Рейтинг: 0 / 0
24.11.2003, 15:27
    #32333145
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
2 СириусБ
Тебе что, показать запрос, исполняя который аксес ахереет обрабатывать 400000 записей, а ты говном изойдешь прежде чем первую запись увидишь? А если индексы нужные уберешь - так вообще никогда ничего не дождешься.

Не надо тут про спекулятивные запросы разглагольствовать.
...
Рейтинг: 0 / 0
24.11.2003, 15:40
    #32333165
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
я не понимаю о чем вы но если делать поиск по параметру то ооооооооочень долго. я спрашиваю о возможной оптимизации...
...
Рейтинг: 0 / 0
24.11.2003, 15:44
    #32333176
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
raur писал:делать поиск по параметру то ооооооооочень долго
Вот и сделай индекс по тому полю, в котором ищешь.
...
Рейтинг: 0 / 0
24.11.2003, 15:53
    #32333198
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
2raur

Сперва можно прочесть это
Особенно пункт Рекомендации подпункты 5 и 10 для начала.
...
Рейтинг: 0 / 0
24.11.2003, 15:56
    #32333202
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
Виктор, окстись!
Он тебя послушает и вывалит сюда 15 таблиц по 400000 записей каждая
...
Рейтинг: 0 / 0
24.11.2003, 15:59
    #32333210
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
а можно подробнее плиз
...
Рейтинг: 0 / 0
24.11.2003, 16:02
    #32333216
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
я не буду сюда вываливать эти табл....
вы мне про индексы подробнее расскажите....
...
Рейтинг: 0 / 0
24.11.2003, 16:09
    #32333232
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
2raur
>вы мне про индексы подробнее расскажите....

Индексирование (планирование и создание индексов) - это одна из важных работ при проектрировании БД, осуществляемая для ускорения выборки информации. Тема слишком широкая, чтобы просто так взять и расказать в двух словах - для начала попробуй что-нибудь почитать по данной теме (ну и про проеткирование - тоже).

А пока просто дай текст твоего запроса
...
Рейтинг: 0 / 0
25.11.2003, 13:29
    #32334154
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
SELECT NAK.[Способ расчета], SPN.*
FROM NAK INNER JOIN SPN ON (NAK.[Номер ТТН] = SPN.[Номер ТТН]) AND (NAK.[Код клиента] = SPN.[Код клиента])
WHERE (((NAK.[Способ расчета])="кн"));
...
Рейтинг: 0 / 0
25.11.2003, 13:36
    #32334164
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
Во-первых открой схему данных и сделай связь между NAK и SPN по двум полям (Номер ТТН и Код клиента)
Во-вторых можешь попробовать сделать индекс по полю NAK.[Способ расчета])
...
Рейтинг: 0 / 0
25.11.2003, 13:47
    #32334184
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
Связи между таблицами уже существуют (см запрос)
а как проиндексировать? что это хоть такое? я сейчас в инете ищу статьи на эту тему...
...
Рейтинг: 0 / 0
25.11.2003, 14:02
    #32334203
assa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
>>Связи между таблицами уже существуют (см запрос)

Мдя. :( Скоко раз повторять, что связь (схемы) промеж таблицами, это вторичный ключ, для которого Аксесс сам скрытно создает индексы (кои можно даже просмотреть в соотв. семействе), а совсем не "связь" джойн в запросе. Если конечно проставлены требуемые отношения целостности в связ.

А индекс, в первом приближении, это такая упорядоченная структура, по которой работают методы быстрого поиска (наподобие деления интервала пополам) без чтения всей структуры (в силу заведомой упорядоченности). Т.е. вы избавляетесь от необходимости читать таблицу с диска целиком для каждого запроса.
...
Рейтинг: 0 / 0
25.11.2003, 14:04
    #32334209
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
А не пробовал в хелпе слово "индекс" набрать? Хелп тебе много чего скажет.

З.Ы. Еще попробуй таблицу в конструкторе открыть.
З.З.Ы. Совсем не факт что индекс тут поможет. Разве что по нему большая часть записей отсечется.
...
Рейтинг: 0 / 0
25.11.2003, 14:23
    #32334248
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
индексы в хелпере нашел
спасибо
а есть ли возможность индексировать в ручную (например посредством кода)?
...
Рейтинг: 0 / 0
25.11.2003, 14:27
    #32334257
assa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
хошь в конструкторе (ручками), хошь кодом. усе в хелпе.
...
Рейтинг: 0 / 0
25.11.2003, 14:28
    #32334260
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
Есть. Только вручную - это мышкой в конструкторе, а кодом - это в кнопочками в VBA (см. хелп к объектам DAO, а именно к TableDef, Index, Relation и т.д.)
...
Рейтинг: 0 / 0
25.11.2003, 15:10
    #32334337
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запросы в большой базе
спасибо всем
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SQL запросы в большой базе / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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