Оценка продолжительности запроса SQL Server

Мы можем использовать rowSums напрямую

df[rowSums(df[2:4] >= 0.5) > 0, ]

#  Name  Clust1  Clust2   Clust3
#2   BB 0.76946 0.03242 0.029358
#3   CC 0.10990 0.52171 0.283859

Или dplyr версию с filter_at и any_vars

library(dplyr)
df %>%
  filter_at(vars(starts_with("Clust")), any_vars(. >= 0.5))

и в том, что касается исправления вашего В коде упоминается @thelatemail. Вы включаете столбец 1 в rowSums, который является столбцом Name, поэтому вы хотите поместить его в столбцы 2:4. Также мы можем напрямую filter вместо создания новой переменной с mutate, поэтому должно работать следующее.

df %>% filter(rowSums(.[,c(2:4)] >= 0.5) > 0)

Мы также можем использовать версию apply, которая была бы медленной для больших наборов данных

df[apply(df[2:4] >= 0.5, 1, any), ]
5
задан oers 13 April 2012 в 06:46
поделиться

2 ответа

Я забыл бы об этом и просто поместил бы вращающийся круг!

Серьезно, хотя, для взятия идеи MrTelly далее существуют динамические представления управления, которые могут дать Вам среднее время выполнения для определенных запросов - возможно, который может получить Вас где-нибудь.

http://msdn.microsoft.com/en-us/library/ms188754.aspx

править: Я видел, что процент завершается в sp_whoisactive процедуре от Adam Machanic. Возможно, это - другое место для изучения. 2016 SQL имеет хранилище запроса, которое сохраняет информацию о кэше плана - замена для кэша плана dmv, который очищен на перезагрузке.

5
ответ дан 14 December 2019 в 04:48
поделиться

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

select blah from table where IdRange between (1 and 100000)

select blah from table where IdRange between (100001 and 200000)

поскольку каждый sql завершается, так обновите индикатор выполнения.

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

Оба этих подхода довольно топорны, надо надеяться, кто-то знает лучший подход.

Конечно, Вы могли попытаться дешифровать план запросов и сделать решение на основе этого, но в коде, который будет тверд.

1
ответ дан 14 December 2019 в 04:48
поделиться
Другие вопросы по тегам:

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