powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите оптимизировать схему данных
18 сообщений из 18, страница 1 из 1
Помогите оптимизировать схему данных
    #38904407
Код: sql
1.
2.
3.
4.
5.
create table t(a int, b int, c int, d int, c int, d int);
go

select * from t where a = @p_a and b = @p_b and c > @p_c
go



надо оптимизировать запрос
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904409
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создать составной индекс по полям a,b,c
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904412
Leonid Kudryavtsev,

и все?
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904417
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev, судя по синтаксису, скорее кластерный ключ.
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904422
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerLeonid Kudryavtsev, судя по синтаксису, скорее кластерный ключ.
а можно для тупых, что такое "кластерный ключ"?
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904425
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маргарита1995Leonid Kudryavtsev,

и все?
В общем случае (в 99%) - да. Главное понимать, что порядок полей в индексе ИМЕЕТ значение

В крайних случаях, иногда приходилось в индекс ВСЕ поля забивать a,b,c,d.
(у Вас почему-то поля c,d дублируются, такого быть не может).

От http://docs.oracle.com/cd/B10501_01/appdev.920/a96590/adg07iot.htm я отказался. Тестил на реальной задачи, скорость работы индекс организованной таблицы на вставку было ЗНАЧИТЕЛЬНО (в разы) медленнее, чем просто таблица + индекс по всем полям. До причин данного артифакта не доискивался.

Все зависит от ЗАДАЧИ и используемого средства (базы данных).
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904472
Leonid Kudryavtsevсоздать составной индекс по полям a,b,c

А есть разница между двумя вариантами:

a,b,c
b,a,c

для данного конкретного запроса.

(c,a,b не рассматриваем - понятно что есть)
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904473
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маргарита1995А есть разница между двумя вариантами:

a,b,c
b,a,c

для данного конкретного запроса.

(c,a,b не рассматриваем - понятно что есть)
А почему опытным путем не попробовать?
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904476
AxeleronМаргарита1995А есть разница между двумя вариантами:

a,b,c
b,a,c

для данного конкретного запроса.

(c,a,b не рассматриваем - понятно что есть)
А почему опытным путем не попробовать?

ну я заполняла два варианта:

a - 5 различных значений
b - 1000 различных значений

a - 1000 различных значений
b - 5 различных значений

и по чтениям получается одинаково абсолютно. может я не верно подобрала распределение данных? как вы считаете?
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904479
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маргарита1995ну я заполняла два варианта:

a - 5 различных значений
b - 1000 различных значений

a - 1000 различных значений
b - 5 различных значений

и по чтениям получается одинаково абсолютно. может я не верно подобрала распределение данных? как вы считаете?
А сколько итого записей в таблице было?
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904484
AxeleronМаргарита1995ну я заполняла два варианта:

a - 5 различных значений
b - 1000 различных значений

a - 1000 различных значений
b - 5 различных значений

и по чтениям получается одинаково абсолютно. может я не верно подобрала распределение данных? как вы считаете?
А сколько итого записей в таблице было?

1 000 000
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904488
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маргарита1995Axeleronпропущено...

А сколько итого записей в таблице было?

1 000 000
Значит, Вы ответили сами на свой вопрос :)
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904491
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маргарита1995А есть разница между двумя вариантами:
a,b,c
b,a,cРазница будет если ваша СУБД умеет сжатие блоков.
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904519
SERG1257Маргарита1995А есть разница между двумя вариантами:
a,b,c
b,a,cРазница будет если ваша СУБД умеет сжатие блоков.

наша умеет сжатие страниц. опробовано. одинаковое число чтений в обоих вариантах.

причем, честно говоря не поняла почему оно могло дать разное число чтений? учитывая алгоритм сжатия page compression

--

а если, скажем колонки a и b будут иметь такие типы:

a varchar(5), b varchar(10), ...

остальные колонки имеют тип int

для данного запроса важен ли порядок? поидее тоже нет.
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904579
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маргарита1995для данного запроса важен ли порядок?
Размер таки имеет значение.
и ещё селективность индекса.

Попробуйте заполнить "а" уникальными значениям, а "b" одним и тем же значением все записи.
Сделайте для обоих вариантов 2 запроса: с существующим значением "b" и с несуществующим.

Убедитесь, что во всех четырёх случаях оптимизатор таки использует эти индексы...

Сделайте теперь те же четыре запроса на длинном "а" и коротком "b", и наоборот.

Одинаково? :)
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904588
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маргарита1995наша умеет сжатие страниц.
Между сжатием страниц и префиксным сжатием индексных ключей - большая разница.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904635
АнатоЛойМаргарита1995для данного запроса важен ли порядок?
Размер таки имеет значение.
и ещё селективность индекса.

Попробуйте заполнить "а" уникальными значениям, а "b" одним и тем же значением все записи.
Сделайте для обоих вариантов 2 запроса: с существующим значением "b" и с несуществующим.

Убедитесь, что во всех четырёх случаях оптимизатор таки использует эти индексы...

Сделайте теперь те же четыре запроса на длинном "а" и коротком "b", и наоборот.

Одинаково? :)

одинаково. если мы об одном и том же. меряла только чтения.
...
Рейтинг: 0 / 0
Помогите оптимизировать схему данных
    #38904826
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маргарита1995Leonid Kudryavtsevсоздать составной индекс по полям a,b,c

А есть разница между двумя вариантами:

a,b,c
b,a,c

для данного конкретного запроса.



не должно быть разницы.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите оптимизировать схему данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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