Estou importando mais de 200 arquivos de rastreamento (que são enormes) e minha abordagem atual é executar um loop e inserir os dados de rastreamento (consulte o script abaixo). Eu olhei em volta para ver se havia uma maneira mais rápida de fazer isso, seja por SSIS ou C # e parece que eles ainda chamam a função abaixo, semelhante ao script abaixo.
Alguém tem outros métodos que eles usam para importar vários rastreamentos? Não me interpretem mal, o código abaixo funciona, mas estou curioso para saber se há algo mais rápido que não estou considerando.
DECLARE @start INT = 1, @stop INT = 223, @sql NVARCHAR(MAX), @path VARCHAR(1000)
WHILE @start <= @stop
BEGIN
SET @path = 'N:\Traces\TraceFile_' + CAST(@start AS VARCHAR(5)) + '.trc'
SET @sql = 'INSERT INTO SavedTraces
SELECT *
FROM ::fn_trace_gettable(''' + @path + ''', default)
'
EXECUTE sp_executesql @sql
SET @start = @start + 1
SET @path = ''
SET @sql = ''
END
Notas de dados: 490 MB (~.5G), que contém mais de 11.700.000 linhas, requer 13:11 minutos para importar.
Dependerá inteiramente de onde está o gargalo. O que exige que você meça e aborde isso como qualquer outro problema de desempenho.
Se o gargalo for o
INSERT
desempenho, certifique-se de obter o registro mínimo. O The Data Loading Performance Guide é, obviamente, leitura obrigatória.Se o gargalo estiver lendo os rastros
fn_trace_gettable
então... você tem um problema. Pode ser um disco de origem lento (verifique se o acesso é serializado e o cabeçote não fica randomizado) oufn_trace_gettable
ele mesmo pode ser lento (não é, é o disco, mas você deve medir...). Lembre-se de que, mesmo que a leitura dos arquivos TRC de origem seja lenta, a leitura de muitos deles em paralelo a partir de caminhos de acesso de entrada não sobrepostos (ou seja, discos separados) pode obter uma taxa de transferência muito melhor.Se o gargalo é... hmmm... não vejo o que mais poderia ser o gargalo. Mas é claro que você deve medir, obter contadores de desempenho, identificar para onde o tempo vai.
Em última análise, seu problema é bastante esotérico, então a essência dele é que você precisa medir e se adaptar às suas descobertas.
Dependendo do que estou procurando nos arquivos de rastreamento, normalmente usaria
Obviamente, você também pode usar o powershell , mas achei os acima mais úteis quando você precisa carregar um grande número de arquivos de rastreamento com eficiência.