Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
10.04.2013, 17:19
|
|||
---|---|---|---|
Зависимость скорости работы приложения от количества индексов |
|||
#18+
Сегодня наблюдал за интересной дискуссией - двое программистов спорили, насколько влияет количество индексов в таблицах базы данных на скорость выполнения приложения. Причем я не понял, на каком ЯП они пишут, плохо слышно было. Мне стало интересно, а насколько это влияет в VFP? Не так давно дали сопровождать одну программу, там было 90% лишних индексов, удалил, но на скорости работы это особо не сказалось, правда там небольшой объем и шустрая локалка. Хотелось бы послушать мнение экспертов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.04.2013, 20:11
|
|||
---|---|---|---|
Зависимость скорости работы приложения от количества индексов |
|||
#18+
Ты описал обсуждение сферического коня в вакууме. Конкретный ответ выводится опытным путем для конкретной задачи. Тут ключевое слово не ЯП а приложение. Что делает это приложение? если это OLAP, т.е. относительно статичная база для постороения отчетов - тут чем больше индексов тем лучше. Если OLTP, т.е. идет непрерывный ввод данных, то индексов должно быть разумное количество, чтобы изменение не тормозило на перестроении индексов, но используемые выборки происходили максимально быстро. Это чистая теория. Что касается непосредственно фокса (мое мнение): т.к. в DBFе нет блокировок то скорость изменения индексов в большинстве случаев не критична, как следствие не критично количество индексов. Тут как правило критично время создания индексов, т.к. при сбоях в сети/снятия задач/жестоких перезагрузках индексы портятся, т.е. надо их пересоздавать, т.е. время из пересоздания - это время на возобновление работы приложения. а тут каждый сам решает кому 30 сек долго, кому полчаса быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.04.2013, 22:08
|
|||
---|---|---|---|
Зависимость скорости работы приложения от количества индексов |
|||
#18+
Jonny540, Разумеется, чем больше индексов тем быстрее работает бд. Тут естественно надо оговориться, что индексы должны быть нужными для приложения, не дублировать друг друга и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.04.2013, 22:21
|
|||
---|---|---|---|
Зависимость скорости работы приложения от количества индексов |
|||
#18+
MasterZivРазумеется, чем больше индексов тем быстрее работает бд. Тут естественно надо оговориться, что индексы должны быть нужными для приложения, не дублировать друг друга и т.п.Наверное, всё же быстрее работает поиск в БД, а не сама БД Ну и такое: если приложение построено на активном использовании SQL-синтаксиса, то иногда индексы вообще не требуются. Хотя я вопрос рашмор-оптимизации не изучал настолько глубоко (по сравнению с В.Максимовым)... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.04.2013, 23:03
|
|||
---|---|---|---|
|
|||
Зависимость скорости работы приложения от количества индексов |
|||
#18+
MasterZivJonny540, Разумеется, чем больше индексов тем быстрее работает бд. Ну и какой смысл в индексном файле, объем которого сопоставим или больше объёма данных? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2013, 05:46
|
|||
---|---|---|---|
Зависимость скорости работы приложения от количества индексов |
|||
#18+
MasterZivТут естественно надо оговориться, что индексы должны быть нужными для приложения, не дублировать друг друга и т.п.Вот именно. В приложении, о котором я говорил, индексы были почти по каждому полю и их всевозможным комбинациям. На кой черт это делалось, сказать не могу, получил уже все в готовом виде. И еще куча всяких дополнительных index в каких-то промежуточных табличках, без которых можно прекрасно обойтись. Правда, раньше не было опции readwrite в select ... into cursor... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2013, 12:41
|
|||
---|---|---|---|
Зависимость скорости работы приложения от количества индексов |
|||
#18+
Jonny540 Мне стало интересно, а насколько это влияет в VFP? Не так давно дали сопровождать одну программу, там было 90% лишних индексов, удалил, но на скорости работы это особо не сказалось Да это влияет не только в VFP. При любом изменении ключевого поля, которое использовано в индексе, козе понятно, что это поле и его значение должно измениться в индексе. Соответственно, работа с индексами 1) с одной стороны ускоряет работу а 2) с другой стороны втихую грузит запись в индексные файлы и общую производительность системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2013, 14:40
|
|||
---|---|---|---|
|
|||
Зависимость скорости работы приложения от количества индексов |
|||
#18+
AndreTM Ну и такое: если приложение построено на активном использовании SQL-синтаксиса, то иногда индексы вообще не требуются. Можно и без индексов, но скорость выборки будет очень низкой. Особенно, при работе по сети будет заметно. Jonny540 Не так давно дали сопровождать одну программу, там было 90% лишних индексов, удалил, но на скорости работы это особо не сказалось Замерь скорость записи в эти таблицы. Чем меньше индексов - тем быстрее запись. А на выборку могло и не повлиять. Может, те что удалил и не использовались. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2013, 14:41
|
|||
---|---|---|---|
|
|||
Зависимость скорости работы приложения от количества индексов |
|||
#18+
P.S. Индексы вообще-то с умом надо строить, а не просто побольше накидать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2013, 14:46
|
|||
---|---|---|---|
|
|||
Зависимость скорости работы приложения от количества индексов |
|||
#18+
XAndy у и какой смысл в индексном файле, объем которого сопоставим или больше объёма данных? :) Зависит от того как будет индекс использоваться. Поиск по бинарному дереву быстрее чем линейный. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2013, 22:04
|
|||
---|---|---|---|
|
|||
Зависимость скорости работы приложения от количества индексов |
|||
#18+
Reese, Это понятно, но сам же написал, что есть и запись... ;), а если пишут много и многие, а индексов, как тут пишут "чем больше, тем лучше" ))))))))) А зачем их больше, не говорят. Ну, ключевые поля - понятно, плюс поля, всегда участвующие в условия выборок, как даты... но зачем чем больше тем лучше - непонятно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.04.2013, 12:08
|
|||
---|---|---|---|
Зависимость скорости работы приложения от количества индексов |
|||
#18+
Я наверное ошибаюсь, но виды представления данных могут быть как в таблице, так по записям(next, prev и т.д.), если рассматривать табличное представление(понимаю, что плохо, но так удобно тем кто c ними работает), если использовать свободные таблицы (без контейнера базы данных, котоые используют view, зато получается мобильное приложение, которое легко копируется на удаленные машины) и т.д.(много ещё если..), то индексы очень помогают не только для поиска, но и для отображения инф., Например есть поле Внутренее перемещение-(недавно склад сочинял...), есть поле Списано и т.д., ставишь индекс iif(empty(Дата внутр. перемещ),.T.,.F.), и так по каждому полю, заходишь в Акты списания, устанавливаешь индекс (set order to акты списания, set key to .T.), и просматриваешь акты.. и т.д. PS: Я так примерный пример привел :-), что использование индексов на любителя...:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.04.2013, 13:51
|
|||
---|---|---|---|
|
|||
Зависимость скорости работы приложения от количества индексов |
|||
#18+
XAndy Так ты же про объем индексного файла говорил. Он действительно может быть сопоставим по объему с самой таблицей. Причем все индексы могут быть целесообразными. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.04.2013, 06:57
|
|||
---|---|---|---|
Зависимость скорости работы приложения от количества индексов |
|||
#18+
ReeseXAndy у и какой смысл в индексном файле, объем которого сопоставим или больше объёма данных? :) Зависит от того как будет индекс использоваться. Поиск по бинарному дереву быстрее чем линейный. А кто-то спорит ? Индексированный поиск (SEEK) на порядки быстрее, чем LOCATE. Кроме того, для любителей строить изысканные SELECT-SQL индексы просто незаменимы. А насчёт обьема индексного файла - а кого в наше время это колышет ? При нынешних HDD (много гигов) это есть такая ерунда... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&tablet=1&tid=1583079]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 448ms |
0 / 0 |