1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Помогите плиз с запросом

Тема в разделе "Базы данных и администрирование", создана пользователем Desir, 18 апр 2008.

  1. Desir

    Desir Гость

    Репутация:
    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]

    меня в данном случае больше интересует трудоемкость вот этого куска кода:
    [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
    /*------------------------------------------------------*/[/sql]
    По моим подсчетам трудоемкость будет выражена формулой:
    Tmax = Θ( n2 m2 p2 Ln(np) Ln(mp))
    Tmin = Θ(n2 m p Ln(mp) )

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

    Правильно ли я посчитал запрос? и если не трудно какой будет результирующий?
    Заранее спасибо
     
  2. Desir

    Desir Гость

    Репутация:
    0
    эмм... как известно любая операция(сортировка, поиск и т.д) выполняется с какой либо трудоемкостью... в данном случае кол-во проходов по таблицам... при больших числах при разной трудоемкости будет разное время выполнения запроса.
     
  3. Desir

    Desir Гость

    Репутация:
    0
    хм, меня интересует трудоемкость алгоритма запроса =) я думаю она одна для каждого запроса в отдельности
     
  4. Desir

    Desir Гость

    Репутация:
    0
    а понял) субд Oracle 10. =)
     
  5. Desir

    Desir Гость

    Репутация:
    0
    пасиб конечно за умные слова) но меня интересует трудоемкость именно этого запроса. и нужна точная формула. либо слова: Да, твоя правильная =)
     
  6. Desir

    Desir Гость

    Репутация:
    0
    НА твой взгляд какой должна быть правильная формула?
     
  7. Desir

    Desir Гость

    Репутация:
    0
    ну в общем из всех твоих слов я не увидел ничего полезного) пасиб, зато пофлудили)
     
  8. European

    Репутация:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    2
    Desir, Вам sax_ol правильно сказал - сначала изучите теорию БД. При выполнении запросов теория большого О не подходит, т.к. все зависит от составленного плана запроса. Часто условная трудоемкость выбора данным из таблицы в разы больше, чем выполнение математических действий... Ну да ладно, если Вы хотите увидеть некое магическое число, то установите TOAD. Он для каждого запроса покажет Вам некий Cost, полученный на основе анализа плана запроса.
     
  9. Desir

    Desir Гость

    Репутация:
    0
    Tmax = Θ( n2 m2 p2 Ln(np) Ln(mp))
    Tmin = Θ(n2 m p Ln(mp) )

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

    Что не понятного я написал в своем вопросе? помогите мне разобраться хоть. а не посылайте изучать теорию БД.
     
Загрузка...
Похожие Темы - Помогите плиз запросом
  1. rulic
    Ответов:
    5
    Просмотров:
    1.423
  2. AvasKvas
    Ответов:
    30
    Просмотров:
    9.607
  3. citizenfour
    Ответов:
    1
    Просмотров:
    65
  4. Tayrus
    Ответов:
    1
    Просмотров:
    73
  5. Lcf11
    Ответов:
    2
    Просмотров:
    81

Поделиться этой страницей