Как я использую DB2, Объясняют?

По какой-то причине contents() у меня не сработало, поэтому, если у вас это не сработало, вот решение, которое я принял, я создал jQuery.fn.descendants с возможностью включать текстовые узлы или нет

Использование


Получить все потомки, включая текстовые узлы и узлы элементов

jQuery('body').descendants('all');

Получить все потомки, возвращающие только текстовые узлы

jQuery('body').descendants(true);

Получить все потомки, возвращающие только узлы элементов

jQuery('body').descendants();

Coffeescript Original :

jQuery.fn.descendants = ( textNodes ) ->

    # if textNodes is 'all' then textNodes and elementNodes are allowed
    # if textNodes if true then only textNodes will be returned
    # if textNodes is not provided as an argument then only element nodes
    # will be returned

    allowedTypes = if textNodes is 'all' then [1,3] else if textNodes then [3] else [1]

    # nodes we find
    nodes = []


    dig = (node) ->

        # loop through children
        for child in node.childNodes

            # push child to collection if has allowed type
            nodes.push(child) if child.nodeType in allowedTypes

            # dig through child if has children
            dig child if child.childNodes.length


    # loop and dig through nodes in the current
    # jQuery object
    dig node for node in this


    # wrap with jQuery
    return jQuery(nodes)

Drop In Версия Javascript

var __indexOf=[].indexOf||function(e){for(var t=0,n=this.length;t=0){i.push(r)}if(r.childNodes.length){f.push(n(r))}else{f.push(void 0)}}return f};for(s=0,o=this.length;s

Унифицированная версия Javascript: http://pastebin.com/cX3jMfuD

Это кросс-браузер, небольшой код Array.indexOf включен в код.

23
задан Trevel 7 October 2009 в 21:25
поделиться

2 ответа

То, что вы ищете, покрывается двумя утилитами DB2:

  1. Утилита объяснения , которая показывает план доступа оптимизатора и приблизительную стоимость для конкретного запроса ( на основе текущей статистики RUNSTATS)
  2. Советник по проектированию , который рекомендует структурные изменения для повышения производительности одного или нескольких запросов

Обе утилиты требуют создания специализированных таблиц в база данных.

Я предпочитаю использовать утилиту объяснения больше, чем советник, особенно если я могу изменить SQL для запроса, чтобы повлиять на лучший план доступа. Я использую утилиту командной строки db2expln, чтобы объяснить различные версии настраиваемого запроса и сравнить их стоимость. Какой'

18
ответ дан 29 November 2019 в 02:16
поделиться

Я всегда обнаруживал, что запуск функции объяснения из командной строки с включенным режимом '-g' помогал мне точно определять проблемы.

Я не могу вспомнить варианты сейчас, и IIRC, db2expln немного привередлив в упорядочивании (т.е. вы не можете ставить имя пользователя после пароля !!}, но это работает хорошо.

3
ответ дан 29 November 2019 в 02:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: