Тайм-ауты SQL Server зарегистрированы?

Я еще об этом подумал, и ты можешь игнорировать мой предыдущий ответ. Это решение является излишне сложным. Я получил возможность сосредоточиться на возвращении &mut Self из put, хотя об этом вообще не просили. Вы можете просто вернуть &mut RequestInfo из вашего метода put, и все в порядке. Единственная цена, которую вы платите, это то, что вы больше не можете иметь реализацию по умолчанию для put.

pub trait RequestInfo {
    fn put(self: &mut Self, string: String) -> &mut dyn RequestInfo;
}

struct LoggedOut {}
impl RequestInfo for LoggedOut {
    fn put(self: &mut Self, string: String) -> &mut dyn RequestInfo {
        self
    }
}

struct LoggedIn {
    output: Vec<String>,
}
impl LoggedIn {
    fn new() -> LoggedIn {
        LoggedIn { output: Vec::new() }
    }
}
impl RequestInfo for LoggedIn {
     fn put(self: &mut Self, string: String) -> &mut dyn RequestInfo {
        self.output.push(string);
        self
    }
}

fn get(flag: bool) -> Box<dyn RequestInfo> {
    if flag {Box::new(LoggedIn::new())} else {Box::new(LoggedOut{})}
}


fn main() {
    let mut info = get(false);
    info.put("abc".to_string()).put("def".to_string());
}
14
задан Alex Angas 11 December 2013 в 02:50
поделиться

2 ответа

Нет. Необходимо будет использовать SQL Profiler. Стандартная трассировка с событием Lock Timeout и событиями Deadlock Graph должна сделать это.

Аппаратные средства в стороне (такие как достаточно RAM и быстро управляет, и соответствующее размещение Файлов данных и Файлов журнала на соответствующих конфигурациях RAID) большинство тайм-аутов вызываются, не имея sufficently 'хороший' набор индексов для Вашей рабочей нагрузки.

Вам планировали планы ведения индексов регулярно?

12
ответ дан 1 December 2019 в 13:10
поделиться

Вы могли также использовать Уведомления о событии, которые повышены на событиях мертвой блокировки и тайм-ауте. После того, как это будет стрелять, можно записать это в таблицу и или послать себе электронное письмо.

Я показал общую технику здесь:

Непосредственные уведомления о мертвой блокировке, не изменяя существующий код

18 июля 2008

Таким образом, Вы не должны выполнять Профилировщика; который может повлиять на производительность.

3
ответ дан 1 December 2019 в 13:10
поделиться
Другие вопросы по тегам:

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