Страница 3 из 3

Добавлено: 15 ноя 2005, 17:39
AiK
Это нормально.
Вполне. Если у тебя всреднем 1 запись на работника в день, то ты сначала 1700*178 записей преобразуешь к нужному виду даты, а потом сверяешь со 178 записей во вьюхе, которые, кстати, тоже получаются довольно гиморно - преобразование даты плюс distinct.
Т.е. даже если ты по совету Oscar'а создашь две временные таблицы, то сервер будет выполнять 53млн+ сравнений. При этом выиграв на скорости выборки, ты проиграешь на скорости заполнения этих таблиц. Может быть выигрыш в скорости выборки будет больше проигрыша на заполнении этих таблиц за счёт использования индексов, но вряд ли общее время существенно сократиться.

И отвлечённый вопрос: какой несчастный будет обречён просматривать 300 с лишним тысяч записей? Которые кстати с сервера ты не быстро выфетчишь.

Добавлено: 13 дек 2005, 22:01
Viktor Zull
Попробовал я сделать временные таблицы. Скорость совсем другая, гораздо быстрее работает. Не знаю сколько там сервер делает вычислений но то что запрос выполняется быстрее это точно.

Добавлено: 13 дек 2005, 22:14
Viktor Zull
У меня вот еще что:

Есть 2 таблицы: первая такого типа:
Номер работника, Дата

1 01.01.05
2 01.01.05
3 01.01.05
1 02.01.05
2 02.01.05
3 02.01.05
1 03.01.05
2 03.01.05
3 03.01.05

вторая: Номер работника, дата1, дата2

1 01.01.05 01.01.05
1 01.01.05 02.01.05
2 02.01.05 03.01.05
3 02.01.05 06.01.05

Из таблицы 1 нужно получить список тех работников у которых дата из первой таблицы находится в диапазоне Даты1 и даты2 из второй таблице.

Добавлено: 14 дек 2005, 00:05
Oscar
даты в каком формате?

если в человеческом (YYYY-MM-DD), то

WHERE table1.datum >= table2.datum1 AND table1.datum <= table2.datum2

если же нет - в МуСкле усть чудесная ф-ция, если надо - найду

Добавлено: 14 дек 2005, 09:20
Viktor Zull
Даты в формате YYYY-MM-DD.

Добавлено: 14 дек 2005, 20:12
Oscar
Дык какие проблемы?

Код: Выделить всё

SELECT table1.personID FROM table1, table2 WHERE table1.datum >= table2.datum1 AND table1.datum <= table2.datum2

Добавлено: 14 дек 2005, 22:34
Viktor Zull
Проблем нет. Все работает. Спасибо.