powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Составной ключ
35 сообщений из 35, показаны все 2 страниц
Составной ключ
    #32175020
Stanislav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди!!! Подскажите Влияет ли на скорость работы количество полей составного ключа, если влияет, то как ?
...
Рейтинг: 0 / 0
Составной ключ
    #32175038
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что значит скорость? Скорость вставки данных? Скорость выборки по полям входящим в составной ключ в инструкции Where ...?
В одном случае замедлиться, в другом возрастет (может быть).
...
Рейтинг: 0 / 0
Составной ключ
    #32175041
Stanislav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорость открытия таблицы
SELECT * FROM MYTABLE
...
Рейтинг: 0 / 0
Составной ключ
    #32175664
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таком запросе не повлияет, даже если вобще не будет индексов и ключей
имхо :)
...
Рейтинг: 0 / 0
Составной ключ
    #32175684
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для All:
>...если влияет, то как ?

для Stanislav:
КЛЮЧ сам по себе на скорость не влияет (он отвечает за целостность данных). На скорость влияет ИНДЕКС, который может строиться и не по ключевому полю. Т.о. КЛЮЧ<>ИНДЕКС, хотя любое ключевое поле обязательно индексируется.
ИНДЕКС влияет на скорость положительно если ты производишь фильтрацию или сортировку по индексированным полям. Т.о. при выборке всех записей (SELECT * FROM MYTABLE), как правильно заметил fedd, наличие индексов не существенно.
ИНДЕКС влияет отрицательно на скорость выполнения запросов на добавление, изменение и удаление записей, т.к. кроме изменения непосредственно самих данных будут вноситься изменения и в индексы.
ИТОГО: не стоит делать ВСЕ поля индексированными, впрочем, как и не стоить оставлять без индекса поля, по которым ты чаще всего отбираешь и сортируешь записи...

Но все это, конечно, имхо...
...
Рейтинг: 0 / 0
Составной ключ
    #32175747
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Нуф Нуф
ИНДЕКС влияет на скорость положительно если ты производишь фильтрацию или сортировку по индексированным полям.
Нет нет нет и еще раз нет. В смысле не всегда. Индекс с плохой селективностью влияет на скорость отрицательно. Ну а в остальных случаях - положительно
...
Рейтинг: 0 / 0
Составной ключ
    #32176444
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для Лох Позорный:
>Индекс с плохой селективностью ...
:)
А, стесняюсь спросить, возметесь ли вы объяснить вопрошающему, учитывая вашу любовь к пространным изложениям и предпологаемый уровень знаний автора топика, что такое "селективность"? Т.е. чем и почему одинаковые поля "Дата" в разных таблицах имеют различную "селективность"? :)

Хм... А может и можно объяснить... "Повторяемость значений", имхо...
...
Рейтинг: 0 / 0
Составной ключ
    #32176457
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что не надо объяснять так это слово селективность-> селект-> Select.
...
Рейтинг: 0 / 0
Составной ключ
    #32176477
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Селективность - характеристика индекса, показывающая, насколько сильно уменьшается базовый набор при наложении условия на это поле.
Лучшая селективность - у уникального индекса.
Пример индекса с плохой селективностью.
В поле 2 значения (True/False) 50 на 50 - селективность низкая, эффективнее не использовать индекс, а просканировать всю таблицу и на ходу отсеять ненужные записи. Если же те же самые 2 значения но распределение не 50 на 50, а, скажем 99 (False) к 1 (True), и выбирается строки со значением "True" (1%), то выгоднее взять индекс, выбрать нужный прощент записей, и только их и считать из базы. Если при тех же 99 к 1 надо отобрать записи с "False" (99%) - опять полное сканирование.
Насколько мне известно, в оракле индекс не используется если собранная статискика показывает, что условие на этот индекс отсеивает меньше чем 95% записей (оставляет больше 5%) от общего числа. Кстати, в одном своем проекте совершенно независимо от оракла пришел к той же цифре (5%). Это подтверждает гипотезу вселенского разума
К сожалению аксес не собирает такую статистику, и использует (или не использует) индексы как бог на душу положит.
...
Рейтинг: 0 / 0
Составной ключ
    #32176489
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лоху
>использует (или не использует) индексы как бог на душу положит.

Ну с рекодсетами вроде понятно как индекс использовать, а вот как с обычными селектами быть? Не уж то не знаешь? Судя по твоим топикам - ты Большой Любитель мучать индексы :) Давай -колись!
...
Рейтинг: 0 / 0
Составной ключ
    #32176507
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Сенин Виктор
Да откуда ж я знаю захочет аксес индекс использовать или нет? Я что, гадалка что-ли?
Знаю способ заставить его не использовать ненужный индекс. Просто сделать из поля вычисляемое поле (типа вместо "Where Field1=123" написать "Where Field1+0=123"). А вот наоборот, заставить аксес выбирать по индексу если он сам этого не захотел - ну хрен его знает как...
З.Ы. На Большого Любителя могу и обидеться
...
Рейтинг: 0 / 0
Составной ключ
    #32176525
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А "Повторяемость значений", имхо, лучше
...
Рейтинг: 0 / 0
Составной ключ
    #32176528
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тогда уже неповторимость.
...
Рейтинг: 0 / 0
Составной ключ
    #32176581
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лоху
> На Большого Любителя могу и обидеться

Да уж, это я не подумавши написал (ударение на "и")
так, что прелагаю понимать смысл слова "Любитель" как любящего свое дело, да еще с большой буквы! Пойдет? :)

Так, как заставить не исползовать индекс вроде понятно. Как заставить?
Судя по showplan.out - у меня только PrimaryKey используется.
М.б. все-таки внедрах SQL89/92 зарыты инструкции по установке хинтов. Ведь есть не документированный Check, AUTOINCREMENT и т.п.
Второй вопрос - как заставить Access произвести перекомпиляцию (типа - обновить статистику) сохраненых запросов
...
Рейтинг: 0 / 0
Составной ключ
    #32176614
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Виктор Сенин
Ну ты же знаешь как, зачем тогда спрашиваешь?
Пробел в запрос добавляешь и сохраняешь. Вот запрос и перекомпиляется, план меняется. Засада в том, что меняется иногда не в лучшую сторону.
...
Рейтинг: 0 / 0
Составной ключ
    #32176637
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Ну ты же знаешь как, зачем тогда спрашиваешь?

Про планы я мало знаю :(
Можно сказть - ноль
В MSDN ничего не нашел. Где еще искать - хрен его знает. В книгах - либо лажа либо до конца не договаривают.

>Пробел в запрос добавляешь и сохраняешь

Насколько я знаю при сжатии информация об планах хериться, значит прийдется при каждом открытии базы добавлять пробел и сохранять запрос через DAO.QueryDefs - но тогда план точно обновиться?
Как узнать какие запросы без плана?
А точно ли план был построен?
В какой системной таблице они храняться?
Можно было бы на основе анализа ее делать вывод.Как через просмотр Showplan.out понять что запрос выполнился с планом?
Как...
как...
как...

К черту этот Акес - лучще пойду SQL-сервер помучаю :)
...
Рейтинг: 0 / 0
Составной ключ
    #32176642
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пепелац без гравицапы не летает.
Запрос без плана не выполняется. Если у запроса плана нет - при попытке исполнить запрос аксес его сначала откомпилирует.
...
Рейтинг: 0 / 0
Составной ключ
    #32176647
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пепелац без гравицапы летает. Только в пределах планеты
...
Рейтинг: 0 / 0
Составной ключ
    #32176659
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой... Вспомнил! А что достоуважаемый Олл скажет на счет Рашмо? Кажется, было заявлено (читал у Гетца), что составленный математическим образом составной индекс (или как там у него это называется? Карта? Множество?) работает быстрее всех прочих вариантов выборки!
Таким образом, ежли я фильтрую записи по полю с около-уникальными значениями (индекс оправдан) и по полю с совсем не уникальными значениями (индекс не оправдан, с точки зрения учавствующих собеседников), то чтобы воспользоваться этой самой Рашмой (да прастят меня мелко-мягкие и лисы) мне нужны индексы по обоим (обеим? обам?) полям!
Ну и что скажет Олл?! :)
...
Рейтинг: 0 / 0
Составной ключ
    #32176698
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Описания рашмора под рукой нет к сожалению...
Вроде основная его прелесть именно при одновременном использовании двух и более индексов. Если тебе индекс невыгодно использовать - то и рашмор тебе не помошник. Я так понимаю, а как оно на самом деле - хз.
...
Рейтинг: 0 / 0
Составной ключ
    #32176769
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еееех... Я бы процетировал, но там написано, что "Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав".
Даже эта цитата, имхо, поподает под "никакая часть"
//законопослушный пятачок
...
Рейтинг: 0 / 0
Составной ключ
    #32176844
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И х%й с тобой
Цитируй дальше
Лучше бы описание рашмора выложил да?
...
Рейтинг: 0 / 0
Составной ключ
    #32176863
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>И х%й с тобой
Всегда со мной!

В подарок на днюху:

Преимущества технологии Rushmore

Поддерживаемая Jet технология Rushmore заключается в создании карты значений индексов, с помощью которой поиск значений нескольких индексированных полей выполняется исключительно быстро. Однако вы не можете сами определить, будет ли Jet использовать эту технологию при выполнении вашего запроса. Jet просто применяет ее всегда, когда это возможно. Для этого критерии отбора данных из любой входящей в запрос таблицы должны относиться к полям, принадлежащим разным индексам. Если для отбора записей в запросе используется только один критерий или если критерии относятся к полям, по котоым таблица не индексирована, технология Rushmore применяться не будет.
Технология Rushmore работает как с собственными, так и с присоединенными таблицами Access, а также с присоединенными таблицами dBASE. Запросы включающие таблицы ODBC, Btrieve, Paradox или другие таблицы ISAM, не могут выполняться по технологии Rushmore.
...
Рейтинг: 0 / 0
Составной ключ
    #32176869
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то еще видел инфу по Рашмору, но, че-та, найти не могу...
...
Рейтинг: 0 / 0
Составной ключ
    #32176876
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Нуф Нуф
Ну пьяный был. Без обид ок?
Домой приехал - оказалось на кого то наехал
Я не со зла, я с пьяни...
Ты эта... захади если что...
...
Рейтинг: 0 / 0
Составной ключ
    #32176879
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:)
...
Рейтинг: 0 / 0
Составной ключ
    #32176882
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Навеки непригодные к жизни
Нестройные колонны нерожденных на свет
Сливаются в пустом афоризме
Со времени иисуса непрощенных нет


Во накрыло
...
Рейтинг: 0 / 0
Составной ключ
    #32176884
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если для отбора записей в запросе используется только один критерий или если критерии относятся к полям, по котоым таблица не индексирована, технология Rushmore применяться не будет.
Это ответ на твой вопрос насчет невкольких полей, из которых какие-то неиндексированы.
Ни у кого огурца нет да ?
...
Рейтинг: 0 / 0
Составной ключ
    #32176886
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АААААААААААААААА
System of a Down
Суки позорныые
Их голосом поет Мерелин Менсан
С разноцветными глазами
Блин, я усрусь но пить прекращю... Или нет.. Ведь тем я и ценен :(
He is dangerous...
No wait... (c) суперстар
...
Рейтинг: 0 / 0
Составной ключ
    #32176887
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин админ удали конец этого топика да?
...
Рейтинг: 0 / 0
Составной ключ
    #32176890
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин я вот думаю (что редко и за что мне деньги платят)
В Париже тоже взрыв газового балллона (00:08 20030605)? Как в Мсокве? Один раз? И второй раз тоже?
"... Я у вольных у небес попрошу для себя свободы
чтоб не помнить о тебе никогда никогда не помнить о тебе......" (с) Телевизор
Ой накрыло....
...
Рейтинг: 0 / 0
Составной ключ
    #32176893
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
 Я не Лермонтов,
 не Пушкин
 Я блатной поэт 
 Кукушкин

(c) Не установлено
...
Рейтинг: 0 / 0
Составной ключ
    #32176895
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты чего не спишь?
...
Рейтинг: 0 / 0
Составной ключ
    #32176949
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лоху
>А ты чего не спишь?
Гетца читал
...
Рейтинг: 0 / 0
Составной ключ
    #32176952
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернемся к нашим баранам:

Навеяно Гетцом Том 1 Акес2002 стр.764 (гл. Оптимизация приложений)
1. Запросы компилируются и сохраняются только при первом запуске
2. Если вы сохраните запрос после его выполнения, он может быть сохранен в неоткомпилированном виде
3. Поскольку при построение плана выполнения запроса, Jet анализирует размер исходных таблиц и наличие в них индексов на момент компиляции, то посоле модификации индексов и/или значительного изменения количества записей в таблицах имеет смысл заставить Jet заново откомпилировать запрос.
4. Чтобы быть уверенным, что запрос сохранен в откомпилированном виде, надо открыть его в режиме SQL модифицировать (добавить-убрать символ, например), сохранить изменения и выполнить. И именно в такой последовательности

Осталось выяснить, что происходит с этими планами при импорте и сжатии/восстановлении: генеряться заново (что более вероятно) или не фига не генеряться (что так же вероятно - микрософт все-таки)
Если генеряться - то все будет ОК. Увеличилось кол-во записей, изменились индексы - то при следующем сжатии/восстановлении запросы получат новые планы. А если нет, то прийдется утилитку писать, только надо придумать как быть с параметрами, да и не забыть отсеять запросы на удаление/обновление/DDL/
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Составной ключ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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