Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Помогите плиз с запросом, трудоемкость запроса
Desir
Вставить ник
сообщение 18:04:2008, 17:06
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 8
Регистрация: 18:04:2008
Пользователь №: 16 731



Репутация: - 0 +


привет всем.
Возникла трудность: необходимо посчитать трудоемкость запроса (записал, но получился довольно сложный с точки зрения трудоемкости).
Появилась куча разных идей.

ВОт сам запрос:
/*------------------------------------------------------------------*/
SQL
SELECT distinct sa.NAME
FROM SHEFF_ABIT sa,
(
SELECT ae.id_abit, ef.Id_fac, count(ef.ID_exz)
FROM sheff_abit_exz ae,
sheff_exz_fac ef,
sheff_fac_abit fa
WHERE ae.OCENKA > 2 and fa.ID_fac = ef.ID_FAC and ef.ID_EXZ = ae.ID_EXZ and ae.id_abit = fa.id_abit
GROUP BY ef.id_fac, ae.id_abit)
tableGroup,
(
select max(zayav.kol) as maxkol
from ( select id_abit, count(*) as kol
from Sheff_fac_abit group by id_abit) zayav)MK,
(select id_abit as IDA, count(*) as kol
from Sheff_fac_abit group by id_abit) zayav
WHERE zayav.kol = MK.maxkol and zayav.IDA = sa.ID and zayav.IDA = tableGroup.Id_abit
/*------------------------------------------------------*/


меня в данном случае больше интересует трудоемкость вот этого куска кода:
SQL
/*------------------------------------------------------*/
SELECT ae.id_abit, ef.Id_fac, count(ef.ID_exz)
FROM sheff_abit_exz ae,
sheff_exz_fac ef,
sheff_fac_abit fa
WHERE ae.OCENKA > 2 and fa.ID_fac = ef.ID_FAC and ef.ID_EXZ = ae.ID_EXZ and ae.id_abit = fa.id_abit
GROUP BY ef.id_fac, ae.id_abit
/*------------------------------------------------------*/

По моим подсчетам трудоемкость будет выражена формулой:
Tmax = Θ( n2 m2 p2 Ln(np) Ln(mp))
Tmin = Θ(n2 m p Ln(mp) )

Минимальная и Максимальная трудоемкость, двойки это квадраты чисел. n m p - размеры таблиц главных.
Структура таблиц: 3 главные и 3 связующие. каждая с каждой.

Правильно ли я посчитал запрос? и если не трудно какой будет результирующий?
Заранее спасибо
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 15)
sax_ol
Вставить ник
сообщение 18:04:2008, 17:21
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


А что такое "трудоемкость запроса"?
Подняться вверх 
 
Сообщение #2
Desir
Вставить ник
сообщение 18:04:2008, 17:33
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 8
Регистрация: 18:04:2008
Пользователь №: 16 731



Репутация: - 0 +


эмм... как известно любая операция(сортировка, поиск и т.д) выполняется с какой либо трудоемкостью... в данном случае кол-во проходов по таблицам... при больших числах при разной трудоемкости будет разное время выполнения запроса.
Подняться вверх 
 
Сообщение #3
sax_ol
Вставить ник
сообщение 18:04:2008, 17:37
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


эмм... как известно при некоторых ситуациях ничего никуда не проходит, и влияние чисел ослабевает, и даже на это можно влиять, а еще известно, что для каждой субд своя "трудоемкость" wink.gif
Подняться вверх 
 
Сообщение #4
Desir
Вставить ник
сообщение 18:04:2008, 17:39
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 8
Регистрация: 18:04:2008
Пользователь №: 16 731



Репутация: - 0 +


хм, меня интересует трудоемкость алгоритма запроса =) я думаю она одна для каждого запроса в отдельности
Подняться вверх 
 
Сообщение #5
sax_ol
Вставить ник
сообщение 18:04:2008, 17:44
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Цитата(Desir @ 18:04:2008 - 19:39) *
она одна для каждого запроса в отдельности
Вот это требует перевода ...
Ну я ж вам уже намекал и на субд, и на ситуации (читтать нюансы)


алгоритм без субд - ничто
Подняться вверх 
 
Сообщение #6
Desir
Вставить ник
сообщение 18:04:2008, 17:46
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 8
Регистрация: 18:04:2008
Пользователь №: 16 731



Репутация: - 0 +


а понял) субд Oracle 10. =)
Подняться вверх 
 
Сообщение #7
sax_ol
Вставить ник
сообщение 18:04:2008, 17:54
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


у оракла есть хорошая штука - EXPLAIN PLAN, она покажет чего куда ходили, и еще - часто правильно написанный запрос и/или правильно расставленные индексы и т.п. меняют "трудоемкость алгоритма запроса" оч. сильно smile.gif
Подняться вверх 
 
Сообщение #8
Desir
Вставить ник
сообщение 18:04:2008, 18:38
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 8
Регистрация: 18:04:2008
Пользователь №: 16 731



Репутация: - 0 +


пасиб конечно за умные слова) но меня интересует трудоемкость именно этого запроса. и нужна точная формула. либо слова: Да, твоя правильная =)
Подняться вверх 
 
Сообщение #9
sax_ol
Вставить ник
сообщение 19:04:2008, 08:05
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Нет не правильная.
Подняться вверх 
 
Сообщение #10
Desir
Вставить ник
сообщение 19:04:2008, 10:57
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 8
Регистрация: 18:04:2008
Пользователь №: 16 731



Репутация: - 0 +


НА твой взгляд какой должна быть правильная формула?
Подняться вверх 
 
Сообщение #11
sax_ol
Вставить ник
сообщение 19:04:2008, 11:04
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Правильных нету smile.gif

Прежде чем заниматься такими оценками, надо изучить теорию реляционных баз данных.
Потом проштудировать документацию к конкретной субд, для которой собираетесь это делать.
А тогда и потребность в этом отпадет сама собой, я так думаю! ©
Подняться вверх 
 
Сообщение #12
Desir
Вставить ник
сообщение 20:04:2008, 16:42
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 8
Регистрация: 18:04:2008
Пользователь №: 16 731



Репутация: - 0 +


ну в общем из всех твоих слов я не увидел ничего полезного) пасиб, зато пофлудили)
Подняться вверх 
 
Сообщение #13
sax_ol
Вставить ник
сообщение 21:04:2008, 06:19
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Господин, флудить стали вы, начиная с первого своего сообщения.
Еще раз повторяю, хотя надежд на вашу адекватную реакцию все меньше и меньше, возмитесь за теорию, если вам действительно интересно разобраться.
Иначе это все пустой разговор, т.е. - флуд.
Подняться вверх 
 
Сообщение #14
European
Вставить ник
сообщение 21:04:2008, 07:43
Цитата Ответить 


Божественный
*****

Группа: Модеры
Сообщений: 1 816
Регистрация: 4:09:2006
Из: Минск
Пользователь №: 6 316
Специализация: C++



Репутация: - 31 +


Desir, Вам sax_ol правильно сказал - сначала изучите теорию БД. При выполнении запросов теория большого О не подходит, т.к. все зависит от составленного плана запроса. Часто условная трудоемкость выбора данным из таблицы в разы больше, чем выполнение математических действий... Ну да ладно, если Вы хотите увидеть некое магическое число, то установите TOAD. Он для каждого запроса покажет Вам некий Cost, полученный на основе анализа плана запроса.
Подняться вверх 
 
Сообщение #15
Desir
Вставить ник
сообщение 21:04:2008, 09:40
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 8
Регистрация: 18:04:2008
Пользователь №: 16 731



Репутация: - 0 +


Tmax = Θ( n2 m2 p2 Ln(np) Ln(mp))
Tmin = Θ(n2 m p Ln(mp) )

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

Что не понятного я написал в своем вопросе? помогите мне разобраться хоть. а не посылайте изучать теорию БД.
Подняться вверх 
 
Сообщение #16


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись
   

 

RSS Текстовая версия Сейчас: 17:05:2008 - 03:45
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net