Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Зависимость скорости работы приложения от количества индексов / 14 сообщений из 14, страница 1 из 1
10.04.2013, 17:19
    #38220793
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
Сегодня наблюдал за интересной дискуссией - двое программистов спорили, насколько влияет количество индексов
в таблицах базы данных на скорость выполнения приложения. Причем я не понял, на каком ЯП они пишут, плохо слышно было.
Мне стало интересно, а насколько это влияет в VFP? Не так давно дали сопровождать одну программу, там было 90% лишних индексов,
удалил, но на скорости работы это особо не сказалось, правда там небольшой объем и шустрая локалка.
Хотелось бы послушать мнение экспертов.
...
Рейтинг: 0 / 0
10.04.2013, 20:11
    #38220991
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
Ты описал обсуждение сферического коня в вакууме.
Конкретный ответ выводится опытным путем для конкретной задачи.

Тут ключевое слово не ЯП а приложение. Что делает это приложение?
если это OLAP, т.е. относительно статичная база для постороения отчетов - тут чем больше индексов тем лучше.
Если OLTP, т.е. идет непрерывный ввод данных, то индексов должно быть разумное количество, чтобы изменение не тормозило на перестроении индексов, но используемые выборки происходили максимально быстро. Это чистая теория.

Что касается непосредственно фокса (мое мнение): т.к. в DBFе нет блокировок то скорость изменения индексов в большинстве случаев не критична, как следствие не критично количество индексов. Тут как правило критично время создания индексов, т.к. при сбоях в сети/снятия задач/жестоких перезагрузках индексы портятся, т.е. надо их пересоздавать, т.е. время из пересоздания - это время на возобновление работы приложения. а тут каждый сам решает кому 30 сек долго, кому полчаса быстро.
...
Рейтинг: 0 / 0
10.04.2013, 22:08
    #38221055
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
Jonny540,

Разумеется, чем больше индексов тем быстрее работает бд.

Тут естественно надо оговориться, что индексы должны быть нужными для приложения, не дублировать друг друга и т.п.
...
Рейтинг: 0 / 0
10.04.2013, 22:21
    #38221060
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
MasterZivРазумеется, чем больше индексов тем быстрее работает бд.

Тут естественно надо оговориться, что индексы должны быть нужными для приложения, не дублировать друг друга и т.п.Наверное, всё же быстрее работает поиск в БД, а не сама БД
Ну и такое: если приложение построено на активном использовании SQL-синтаксиса, то иногда индексы вообще не требуются. Хотя я вопрос рашмор-оптимизации не изучал настолько глубоко (по сравнению с В.Максимовым)...
...
Рейтинг: 0 / 0
10.04.2013, 23:03
    #38221080
XAndy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
MasterZivJonny540,

Разумеется, чем больше индексов тем быстрее работает бд.



Ну и какой смысл в индексном файле, объем которого сопоставим или больше объёма данных? :)
...
Рейтинг: 0 / 0
11.04.2013, 05:46
    #38221205
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
MasterZivТут естественно надо оговориться, что индексы должны быть нужными для приложения, не дублировать друг друга и т.п.Вот именно. В приложении, о котором я говорил, индексы были почти по каждому полю и их всевозможным комбинациям.
На кой черт это делалось, сказать не могу, получил уже все в готовом виде. И еще куча всяких дополнительных index в каких-то
промежуточных табличках, без которых можно прекрасно обойтись. Правда, раньше не было опции readwrite в select ... into cursor...
...
Рейтинг: 0 / 0
11.04.2013, 12:41
    #38221632
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
Jonny540
Мне стало интересно, а насколько это влияет в VFP? Не так давно дали сопровождать одну программу, там было 90% лишних индексов,
удалил, но на скорости работы это особо не сказалось
Да это влияет не только в VFP. При любом изменении ключевого поля, которое использовано в индексе, козе понятно, что это поле и его значение должно измениться в индексе. Соответственно, работа с индексами 1) с одной стороны ускоряет работу а 2) с другой стороны втихую грузит запись в индексные файлы и общую производительность системы.
...
Рейтинг: 0 / 0
11.04.2013, 14:40
    #38221866
Reese
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
AndreTM Ну и такое: если приложение построено на активном использовании SQL-синтаксиса, то иногда индексы вообще не требуются.
Можно и без индексов, но скорость выборки будет очень низкой. Особенно, при работе по сети будет заметно.

Jonny540 Не так давно дали сопровождать одну программу, там было 90% лишних индексов,
удалил, но на скорости работы это особо не сказалось
Замерь скорость записи в эти таблицы. Чем меньше индексов - тем быстрее запись. А на выборку могло и не повлиять. Может, те что удалил и не использовались.
...
Рейтинг: 0 / 0
11.04.2013, 14:41
    #38221871
Reese
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
P.S. Индексы вообще-то с умом надо строить, а не просто побольше накидать.
...
Рейтинг: 0 / 0
11.04.2013, 14:46
    #38221889
Reese
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
XAndy у и какой смысл в индексном файле, объем которого сопоставим или больше объёма данных? :)
Зависит от того как будет индекс использоваться. Поиск по бинарному дереву быстрее чем линейный.
...
Рейтинг: 0 / 0
11.04.2013, 22:04
    #38222723
XAndy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
Reese,

Это понятно, но сам же написал, что есть и запись... ;), а если пишут много и многие, а индексов, как тут пишут "чем больше, тем лучше" ))))))))) А зачем их больше, не говорят. Ну, ключевые поля - понятно, плюс поля, всегда участвующие в условия выборок, как даты... но зачем чем больше тем лучше - непонятно :)
...
Рейтинг: 0 / 0
12.04.2013, 12:08
    #38223252
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
Я наверное ошибаюсь, но виды представления данных могут быть как в таблице, так по записям(next, prev и т.д.), если рассматривать табличное представление(понимаю, что плохо, но так удобно тем кто c ними работает), если использовать свободные таблицы (без контейнера базы данных, котоые используют view, зато получается мобильное приложение, которое легко копируется на удаленные машины) и т.д.(много ещё если..), то индексы очень помогают не только для поиска, но и для отображения инф., Например есть поле Внутренее перемещение-(недавно склад сочинял...), есть поле Списано и т.д., ставишь индекс iif(empty(Дата внутр. перемещ),.T.,.F.), и так по каждому полю, заходишь в Акты списания, устанавливаешь индекс (set order to акты списания, set key to .T.), и просматриваешь акты.. и т.д.

PS: Я так примерный пример привел :-), что использование индексов на любителя...:-)
...
Рейтинг: 0 / 0
12.04.2013, 13:51
    #38223430
Reese
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
XAndy
Так ты же про объем индексного файла говорил. Он действительно может быть сопоставим по объему с самой таблицей. Причем все индексы могут быть целесообразными.
...
Рейтинг: 0 / 0
13.04.2013, 06:57
    #38224219
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимость скорости работы приложения от количества индексов
ReeseXAndy у и какой смысл в индексном файле, объем которого сопоставим или больше объёма данных? :)
Зависит от того как будет индекс использоваться. Поиск по бинарному дереву быстрее чем линейный.
А кто-то спорит ? Индексированный поиск (SEEK) на порядки быстрее, чем LOCATE. Кроме того, для любителей строить изысканные SELECT-SQL индексы просто незаменимы. А насчёт обьема индексного файла - а кого в наше время это колышет ? При нынешних HDD (много гигов) это есть такая ерунда...
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Зависимость скорости работы приложения от количества индексов / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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