Три левых соединения

  1. 6 г. назад

    Что лучше сделать три левых соединения последовательно через временные таблицы или в одном запросе сразу три соединения?

  2. в одном запросе сразу три соединения, если они простые

  3. Таки хез. у меня пять простеньких соединений (к допреквизитам) сегодня выбили сервер недостатком всего. Я плакал.

    Ответы: (5) (6)
  4. три белых коня, три белых коня...

  5. 19.07.2018 16:13:57 отредактировано jsmith82

    мозги не [...]. делай временные. не прогадаешь точно. бгг
    мы ж не знаем, что у тебя за ПО и ГДЕ

  6. (2) допреквизиты с типом любая ссылка? чего ж вы хотели батенька

  7. (2) Типизируй в соединении и будет гуд работать.

  8. даже я помню про то, что любую ссылку типизировать надо

  9. Кстати вот еще в тему вопросик будет =

    а как это работает? Например, у нас 10 тысяч записей, и нужно отобрать по различныи условиям, если я в начала поставлю условие на период, условие на реквизит тех документов которые мне нужны, от быстрее ли отработает? Еже ли эти данные стояли бы в конце?

    Ответы: (9) (13) (14)
  10. (8) все зависит от того, как построен индекс - кури план запроса.

    Ответы: (10)
  11. (9) Ок, а план запроса это что такое? Это отдельная подсистема?

    Ответы: (11)
  12. (10) wiki:План_выполнения_запроса

  13. Спасибо всем за подсказки!

  14. (8) Общий принцип - накладывать условия отбора как можно раньше.

  15. (8)>а как это работает?
    Смотри план выполнения запроса. Если ClusterIndexSeek/IndexSeek - удачно запросил

    Ответы: (15)
  16. (14)

    Если ClusterIndexSeek/IndexSeek - удачно запросил

    В общем случае подход ошибочен. Имеет смысл смотреть стоимости отдельных частей сравниваемых планов и, разумеется, общую стоимость плана в целом.

    Ответы: (16)
  17. (15)если нет сканов это плохо? Хотя фактическаЯ стоимость может быть плохой, например из-за статистики, параметрс снифер и т.п.

    Ответы: (17)
  18. (16) Если таблица маленькая, использование индекса может не дать прироста в скорости. Зато создание и поддержание индекса съест ресурсы. Не валидная статистика обычно проявляется выбором очевидно не оптимальных планов.

    Ответы: (18)
  19. (17)индекс у физ. таблицы уже как-бэ есть, а вот оптимизировать для мелких таблиц - дурной тон, там и по плохому плану будет быстро.

    Ответы: (19)
  20. (18) "Родного" кластерного индекса обычно бывает недостаточно. Что заметно по операциям index scan.

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

  21. Всем привет!

    Вот есть такой вопрос= есть таблица по договорам и у этих договоров 7 таблиц, из которых нужно получить данные, как лучше сделать?
    Левым соединением или еще как то моно?

  22. ещё как то можно

  23. Всмысле имеется ввиду что сами договора делают движение по 7ми интересующи регистрам, но тк мы говорим о 3х миллионах записей то как оптимизировать?

    Ответы: (27)
  24. индексами и отборами

    Ответы: (25)
  25. ну и алгоритм правильный продумать

  26. (23) отборами понятно , накладывая отбор по периоду на присоединяемые таблицы, акак это индексами? Что имеется ввиду?

  27. если проводить отбор/соединение по индексированному полю, то это обычно быстрее

  28. (22) Ты ничего не путаешь? Обычно договора это справочник, регистры двигать не умеют.

    Ответы: (28) (29) (30)
  29. (27) Он видимо хочет по списку договоров выбрать все их движения по 7-ми регистрам.

  30. (27)справочники и регистры? - Фигня! Я видел зп на РС!!! Вот где жёсть жестянная!!!

  31. (27) Как это договора = справочник?

  32. Короче суть такая, есть договор

    Гуч Гуч, у него три табличные части Пуми1 Пцми2 и Пуми3

    Нужно достать инфу с шапки, с табличных частей и не обосраться

    + еще данные из регистров сведений подтянуть, по которым делает движения данный договор

    Проблема в том, что договоров 3 миллиона где то, нужна выгрузка данных, так тчо можно и подождать пока выполняется

    НО!

    Мне всеже интересно как можно оптимизировать данные запросы

    Я попробовал наложить отбор по периоду на таблицы где табличные части документа выбираются

    но получил лишь небольшое сокращение времени почему также?

    Ответы: (33)
  33. По каким данным собственно нужен отбор?

  34. (31) Сперва отбираешь из таблицы договоров ссылки только на нужные элементы. Потом левым соединением цепляешь к ним детализации из РС и ТЧ.

    Ответы: (34)
  35. 26.07.2018 09:59:56 отредактировано MIK

    (33) а если отбор нужен и по рекизитам левосоединенных данных? вот тут все нюансы

    Ответы: (35) (36) (37)
  36. (34) Добавляем в раздел ПО что-нибудь вроде:

    И ИскомыйРеквизит = &ЗначениеПоиска

  37. + (34) Хуже когда архитектура продумана жопой, тогда начинается херня с отбором по ПОДОБНО

    Ответы: (37)
  38. ТеньД + (34) Хуже когда архитектура продумана жопой, тогда начинается херня с отбором по ПОДОБНО

    был у меня один такой архитектор. Вечно у него в ключевых полях по два префикса было...

    Ответы: (38)
  39. (37) Увы, мне далеко идти за примерами не придется. Недавно самому пришлось рисовать в запросе получение данных из таб. частей документов. Потому как регистр Товары на складах, где все нужные данные лежат, оказался спроектирован так, что выборка данных по нему оказалась на 3 порядка медленнее.

    Ответы: (39)
  40. (38) потому что АналитикаУчетаПоНоменклатуре?

    Ответы: (40)
  41. (39) Надо получить кол-во поступлений товаров за всю жизнь. РН ТоварыНаСкладах спроектировали без индексов по измерениям. Получение цифири из него приводит к неэффективному index scan, перебору почти всех записей. Таблицу ТЧ Товары ПТУ тоже приходится перебирать всю, но там намного меньше записей чем в РН, в который пишут все кому ни лень.

    Ответы: (41) (43)
  42. (40) и что, страшно было, да? [smile=XD]

    Ответы: (42)
  43. (41) Глаза боятся - руки делают.

  44. ТеньД к неэффективному index scan

    это что-то плохое?

    Ответы: (44)
  45. (43) Когда приходится перелопачивать таблицу на 50 лямов записей то это очень плохо. В том случае от кластерного индекса отрабатывало только условие ССЫЛКА Документ.ПоступлениеТоваровУслуг.

или зарегистрируйтесь чтобы ответить!