AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-76763

Kevin3NF's questions

Martin Hope
Kevin3NF
Asked: 2017-06-15 09:48:05 +0800 CST

Otimização T-SQL

  • 3

Se a resposta for 'não', tudo bem...

Estou olhando para ver se isso pode ser otimizado... é parte de um proc armazenado muito maior. CGCodeé varchar(50), Yeare Monthsão smallint, FEINéchar(9)

select max(id)
from Table
where 1=1
    and cgcode = 123
    and datefromparts(cast(year as char(4)),cast(month as char(2)),'01') < getdate()
    and totalcount > 0 
group by cgcode, year, month, fein

Leituras lógicas do plano de execução real: 1.566.473

Dados brutos da tabela de origem mais de 32 milhões de registros

Linhas estimadas: 640K, 55K reais, antes do Group By entrar em ação

Avisos de conversão implícitos ativados Year/Month/CGCode(entra como bigint)

Tempo de execução de aproximadamente 7,5 segundos, fazendo uma busca de índice não clusterizado:

insira a descrição da imagem aqui

O conjunto de resultados finais é de 114 linhas (para isso CGCode, testamos com... outros variam)

O desempenho é praticamente o mesmo no Prod em hardware significativamente melhor do que na caixa Dev. Isso só vai piorar com o tempo, pois está puxando tudo mais antigo que o mês atual, para preencher um gráfico de histórico em uma interface do usuário.

Que outras informações posso fornecer?

Cole o plano

O índice que está sendo usado atualmente:

CREATE NONCLUSTERED INDEX [COIX_Table_TotalCount] ON [dbo].[Table]
(
    [TotalCount] ASC
)
INCLUDE (   [ID],
    [CGCode],
    [Year],
    [Month],
    [FEIN]) 
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, 
        ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

CGCodelimita os dados mais... 281 valores. yearé apenas 3-4 anos de dados, monthapenas 12 opções, é claro. TotalCounté um bigint, 17K valores distintos em 32 milhões de registros. Não faço ideia de qual é o propósito da TotalCountcoluna.

sql-server sql-server-2014
  • 3 respostas
  • 161 Views
Martin Hope
Kevin3NF
Asked: 2017-03-21 09:39:08 +0800 CST

MAX NUMA/ "Afinidade" no SQL Server

  • 3

Existe agora, ou possivelmente em andamento, uma maneira de dizer ao SQL Server para permanecer dentro de um nó NUMA, seja em todo o servidor ou no nível de consulta? Basicamente a mesma funcionalidade do MAXDOP, mas MAXNUMA?

No momento, a menos que eu esteja totalmente ausente, quando uma consulta for paralela, ela poderá usar todos os processadores que puder ver. Apenas imaginando se existe uma maneira de restringi-lo a um ou dois ou 'x' nós NUMA. Eu posso realmente não querer minhas consultas espalhadas por mais de 80 processadores lógicos :)

Isso é mais uma curiosidade do que uma pergunta "me ajude a quebrar minha coisa quebrada".

sql-server numa
  • 2 respostas
  • 596 Views
Martin Hope
Kevin3NF
Asked: 2017-01-26 07:14:26 +0800 CST

Como rastrear a memória SSIS e o desempenho da CPU?

  • 8

Posso estar faltando algumas peças neste quebra-cabeça, mas é isso que eu tenho:

Tudo isso foi escrito para nós por uma empresa externa.

Existe uma aplicação .Net que funciona como um serviço no Servidor A.

Dentro desse aplicativo, os pacotes SSIS estão sendo chamados. DTEXEC?

Esses pacotes (37 no total) alcançam dois SQL Servers (B&C) diferentes, extraem alguns dados, realizam cálculos neles e inserem os resultados em um banco de dados no Servidor C.

Dos 37 pacotes, apenas alguns deles são minha área problemática. Eu vi os detalhes, e há muitas, muitas tarefas neles.

Não há componentes do SQL Server (mecanismo de banco de dados ou SSIS) no Servidor A em que o aplicativo .Net reside, portanto, tudo isso ocorre internamente ao aplicativo. .Net está usando 1 nó NUMA de 20 núcleos, 1 TB de RAM na caixa.

Este aplicativo é a versão 3.0, com novas funcionalidades adicionadas. 2.4 (versão anterior) funciona bem em hardware idêntico.

Todo esse pano de fundo para perguntar isso:

Existe alguma maneira de encontrar T-SQL de baixo desempenho dentro dos pacotes SSIS que estão dentro do aplicativo .Net? Ou estou perdendo algo extremamente óbvio na equação?
O que se resume é: "onde estão os cálculos/T-SQL realmente em execução" (A vs B/C) e como faço para rastreá-los/ajustá-los se estiver dentro do espaço .Net?

Profiler, sp_whoisactiveetc. todos apontam para instâncias SQL. Tudo isso está acontecendo apenas dentro do aplicativo .Net, com pequenas exceções para selecionar dados de B e inserir em C após os cálculos. Toda a rede, disco, etc. está funcionando perfeitamente. Estou procurando uma ferramenta de ajuste que possa alcançar o .Net SSIS se tal coisa existir.

É definitivamente um problema de ajuste, mas Profiler, sp_whoisactiveetc. não mostram nada mais do que talvez 3 segundos, mais bem abaixo de 1/2 segundo ou menos. Eu não sei o suficiente sobre .Net para saber se essas tarefas T-SQL estão realmente sendo executadas no servidor A dentro desse espaço de memória como eu acho que são, ou se há tantas delas que estão agregando em "muito tempo ".

Eu gostaria de ter permissão para habilitar o log pesado no SSIS, mas isso faz parte do código do fornecedor que não tenho permissão para tocar, mesmo para log :(

sql-server performance
  • 2 respostas
  • 3623 Views
Martin Hope
Kevin3NF
Asked: 2016-08-18 07:40:36 +0800 CST

SQLPackage.exe não está captando alterações

  • 0

Estou tentando obter o SQLPackage para comparação de esquema trabalhando na linha CMD. Tem que comparar um master db com 300 live dbs. Todos os SQL 2014 e nenhum registrado como aplicativos da camada de dados. PowerShell e ferramentas de terceiros não são uma opção no momento.

Eu segui os scripts na primeira resposta aqui: https://stackoverflow.com/questions/20673516/command-line-api-for-schema-compare-in-ssdt-sql-server-database-project

Posso criar com êxito arquivos .DACPAC de minha origem e meus destinos.

Se eu adicionar alguns objetos (1 tabela, 3 visualizações) ao banco de dados "Test_B", o script de comparação não mostrará essas diferenças quando eu comparar o mestre com o próprio banco de dados ou com o .dacpac que foi gerado. MAS, se eu executar uma comparação de esquema SSDT do VS, ele os selecionará e criará um script .sql com as instruções DROP esperadas.

Então a pergunta: O que estou fazendo de errado na linha cmd que o Visual Studio/SSDT está fazendo certo? Faltou um parâmetro? Ordem errada das coisas?

#Compare DACPACs

sqlpackage.exe /a:Script /sf:C:\Users\hillke4\Documents\SQLScripts\DACPACS\ACACalculationDB.JTA.v7.master.dacpac /tf:C:\Users\hillke4\Documents\SQLScripts\DACPACS\ACACalculationDB.JTA.v7.Test_B.dacpac /tdn:ACACalculationDB.JTA.v7.Test_B /op:C:\Users\hillke4\Documents\SQLScripts\DACPACS\Deltas\ACACalculationDB.JTA.v7.Test_B.sql


#Compare master dacpac to database

sqlpackage.exe /a:Script /sf:C:\Users\hillke4\Documents\SQLScripts\DACPACS\ACACalculationDB.JTA.v7.master.dacpac /tsn:US1213113W1\SQL2014 /tdn:ACACalculationDB.JTA.v7.Test_B /op:C:\Users\hillke4\Documents\SQLScripts\DACPACS\Deltas\ACACalculationDB.JTA.v7.Test_B.sql
sql-server ssdt
  • 1 respostas
  • 1824 Views
Martin Hope
Kevin3NF
Asked: 2016-04-27 06:29:52 +0800 CST

sys.dm_sql_referencing_entities não retorna resultados

  • 1

Sem dúvida, isso é sintaxe ou erro de digitação... mas quando consulto sys.dm_sql_referencing_entities para uma tabela pai, obtenho zero resultados. Nenhum erro, apenas nenhum resultado.

USE [source];
GO
SELECT *
FROM sys.dm_sql_referencing_entities ('[Test].[USERS]', 'OBJECT');
GO

Quando vejo as dependências do SSMS, recebo

dependências SSMS

Eu nunca usei isso antes, então talvez eu esteja entendendo mal como isso funciona ou o que deveria estar retornando? Também tentei na tabela SUBSCRIPTIONS, mesmo resultado... nada.

sql-server sql-server-2014
  • 2 respostas
  • 999 Views
Martin Hope
Kevin3NF
Asked: 2015-12-02 11:57:13 +0800 CST

Pergunta OPENXML para SQL Server

  • 3

Sou novo no OPENXML e tenho 90% do que quero fazer trabalhando... preso nisso:

<ReportHost name="411.114.42.42">
  <HostProperties>
    <tag name="HOST_END">Wed Nov 11 20:48:43 2015</tag>
    <tag name="LastAuthenticatedResults">8675309</tag>
    <tag name="Credentialed_Scan">true</tag>
    <tag name="policy-used">AWT v6</tag>
    <tag name="ssh-auth-meth">MyPassword</tag>
    <tag name="ssh-login-used">MyLogin</tag>
    <tag name="local-checks-proto">ssh</tag>
    <tag name="host-ip">411.114.42.42</tag>
    <tag name="HOST_START">Wed Nov 11 20:00:01 2015</tag>
  </HostProperties>
</ReportHost>

Meus resultados desejados:

Wed Nov 11 20:48:43 2015
8675309
TRUE
AWT v6
MyPassword
MyLogin
ssh
411.114.42.42
Wed Nov 11 20:00:01 2015

Consigo obter o valor do nome ("Host_end", etc.), mas não o conteúdo.

Minha consulta:

Select   * 
from OPENXML (@hdoc,'/ReportHost/HostProperties/tag',1)
WITH (
    name varchar (500)
     )

Eu gostaria de continuar com o OPENXML se possível, já que passei o dia aprendendo e chegando a esta etapa final.

Por favor, deixe-me saber se eu forneci informações suficientes.

sql-server xml
  • 2 respostas
  • 304 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve