• Как оптимизировать запрос (nested loops)?

    unfilled
    @unfilled
    Я бы начал с того, что убрал все подзапросы, джойнил таблицы напрямую. Скорее всего у этого не будет никакого результата, но читать будет проще.
    Второе, что нужно сделать - это избавиться от этого:
    join (select DocumentRef, DocumentNodeStaticGUIDRef, DocumentNodeValue from DocumentNode) dn2 on dn2.DocumentRef = (select T.[value].value ('.', 'int') from DocumentSettingXML.nodes('/DocumentSetting/PreviousDocumentRef') as T([value]))
     and dn1.DocumentNodeStaticGUIDRef = dn2.DocumentNodeStaticGUIDRef
     where 
     (select T.[value].value ('.', 'int') from DocumentSettingXML.nodes('/DocumentSetting/PreviousDocumentRef') as T([value])) is not null

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

    Nested Loops далеко не всегда плохо, проблема с ним в этом месте в том, что sql server думает, что вернётся 70 тыщ строк (Estimated Number of Rows), а возвращается (Actual Number of Rows) на несколько порядков больше. Дайте ему временную таблицу по которой он сможет построить статистику и он, скорее всего, сам построит приемлемый план.

    Если @StartDate и @EndDate - это переменные, а не параметры SP, попробуйте выполнить запрос в том виде, в котором он есть, но явно подсунув туда даты, без переменных. Если это хранимая процедура и это её параметры, попробуйте выполнить её после sp_recompile. Этот абзац актуален только в том случае, если запрос не всегда работает медленно.

    Ну и от distinct надо избавляться, да.
    Ответ написан
    Комментировать
  • Как оптимизировать запрос (nested loops)?

    @d-stream
    Готовые решения - не подаю, но...
    я бы начал с некоего переосмысливания - что же он такого делает
    думаю для понимания можно вынести сабселекты в джойнах во временные таблицы в памяти (@table)

    ну и посмотреть на предмет distinct в главном селекте - есть большие подозрения что от него можно избавится сгруппировав значения
    Ответ написан
    6 комментариев
  • Как оптимизировать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А почему не использовать
    ORDER BY `DocumentCreationDate` DESC
    LIMIT 1,1
    ?
    Ответ написан
    3 комментария
  • Почему не видит NULL значение?

    tsklab
    @tsklab Куратор тега SQL Server
    Здесь отвечаю на вопросы.
    Почему не видит NULL значение?
    Значит его там нет.
    Ответ написан
    Комментировать
  • Как сделать сравнение без учета регистра символов в Python?

    aRegius
    @aRegius
    Python Enthusiast
    При сравнении приводите к единому регистру.
    Ответ написан
  • Сжатый и обычный CSS, как переключатся?

    @Arik
    обычно вешаем watch и gulp cам смотрит какие файлы изменились и пересобирает к фронт, в целом очень быстро и удобно. К этому еще и LiveReload можно повесить
    Ответ написан
    2 комментария
  • Не подключается Owl-carousel?

    IIIu6ko
    @IIIu6ko
    Проверь ещё раз пути

    Вот только что подключил, всё работает.
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <link rel="stylesheet" href="OwlCarousel2-2.2.1/dist/assets/owl.carousel.css">
      <link rel="stylesheet" href="OwlCarousel2-2.2.1/dist/assets/owl.theme.default.css">
    </head>
    <body>
      <div class="owl-carousel">
        <div> Your Content </div>
        <div> Your Content </div>
        <div> Your Content </div>
        <div> Your Content </div>
        <div> Your Content </div>
        <div> Your Content </div>
        <div> Your Content </div>
      </div>
    
      <script src="jquery-3.3.1.min.js"></script>
      <script src="OwlCarousel2-2.2.1/dist/owl.carousel.js"></script>
      <script>
        $(".owl-carousel").owlCarousel();
      </script>
    </body>
    </html>


    Структура такая:
    e3sVK2UUQtC-z-OMyc17Mg.jpeg
    Ответ написан
    Комментировать