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-186338

Ali's questions

Martin Hope
Ali
Asked: 2021-07-26 14:08:26 +0800 CST

Adicionando coluna computada extremamente lenta

  • 0

Estamos tentando adicionar uma coluna computada a uma tabela e esta operação está demorando mais de 20 horas para ser concluída:

json_unquote(coalesce(json_extract(`int_data`,'$.Item.IRefNum'),
    json_extract(`m_dt`,'$.refId'))) 

Banco de dados: MySQL versão 5.7 Linhas da
tabela: 32.636.254

A tabela já existe com dados e não pode ser removida.

mysql-5.7 computed-column
  • 1 respostas
  • 109 Views
Martin Hope
Ali
Asked: 2020-07-16 11:13:19 +0800 CST

SQL Server - Não é possível inscrever o destino no SQL Server Agent (MSX) após a alteração de agrupamento

  • 1

Depois de alterar o Collation do SQL Server para Latin1_General_CI_AI de QL_Latin1_General_CP1_CI_AS estou tentando adicionar o servidor de volta ao MSX como destino no CMS, mas o registro está falhando. Uma coisa que esqueci de fazer antes da alteração do SQL Collation foi desertar o servidor. Agora não tenho certeza se é por não desertar o servidor ou alterar o agrupamento que causou isso? Independentemente disso, agora preciso inscrever o servidor no MSX e enviar tarefas de monitoramento do SQL Agent. Este mesmo servidor foi alistado antes da mudança.

Consigo me conectar ao servidor de destino do CMS e vice-versa usando o SSMS

Versão do SQL Server de destino: 2017 Versão do CMS SQL Server: 2017

Erro ao tentar se inscrever no CMS:

===================================

MSX enlist failed for JobServer 'myserver.domain.sa'.  (Microsoft.SqlServer.Smo)

------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=14.0.17285.0+((SSMS_Rel_17_4).180821-0238)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=MSX+enlist+JobServer&LinkId=20476

------------------------------
Program Location:

   at Microsoft.SqlServer.Management.Smo.Agent.JobServer.MsxEnlist(String masterServer, String location)
   at Microsoft.SqlServer.Management.SqlManagerUI.EnlistTsxActions.DoAction(ProgressItemCollection actions, Int32 index)
   at Microsoft.SqlServer.Management.SqlStudio.Controls.ProgressItemCollection.DoWorkOnThread()

===================================

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------
Program Location:

   at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
   at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType, Boolean retry)
   at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries, Boolean retry)
   at Microsoft.SqlServer.Management.Smo.Agent.JobServer.MsxEnlist(String masterServer, String location)

===================================

The enlist operation failed (reason: The time-out was exceeded while the server waited for a response from SQL Server Agent. Make sure that the SQL Server Agent service is running) (.Net SqlClient Data Provider)

------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=14.00.3281&EvtSrc=MSSQLServer&EvtID=22026&LinkId=20476

------------------------------
Server Name: myserver.domain.sa
Error Number: 22026
Severity: 16
State: 1


------------------------------
Program Location:

   at Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
   at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)

Erro ao tentar adicionar isso como destino do servidor de destino:

===================================

MSX enlist failed for JobServer 'myserver.domain.sa'.  (Microsoft.SqlServer.Smo)

------------------------------
For help, click: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=15.0.18206.0+((SSMS_Rel).191029-2112)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=MSX+enlist+JobServer&LinkId=20476

------------------------------
Program Location:

   at Microsoft.SqlServer.Management.Smo.Agent.JobServer.MsxEnlist(String masterServer, String location)
   at Microsoft.SqlServer.Management.SqlManagerUI.EnlistTsxActions.DoAction(ProgressItemCollection actions, Int32 index)
   at Microsoft.SqlServer.Management.SqlStudio.Controls.ProgressItemCollection.DoWorkOnThread()

===================================

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------
Program Location:

   at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
   at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType, Boolean retry)
   at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries, Boolean retry)
   at Microsoft.SqlServer.Management.Smo.Agent.JobServer.MsxEnlist(String masterServer, String location)

===================================

The enlist operation failed (reason: The time-out was exceeded while the server waited for a response from SQL Server Agent. Make sure that the SQL Server Agent service is running) (.Net SqlClient Data Provider)

------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=14.00.3281&EvtSrc=MSSQLServer&EvtID=22026&LinkId=20476

Não consigo encontrar muita informação online sobre este assunto. Qualquer ajuda seria apreciada.

sql-server sql-server-agent
  • 1 respostas
  • 395 Views
Martin Hope
Ali
Asked: 2020-03-14 13:18:13 +0800 CST

Powershell dbatools combinando o resultado de vários comandos Get-dbaxxx para gerar um relatório

  • 0

Eu sou novo no powershell e dbatools. É uma ótima ferramenta, mas quando tento combinar o resultado de alguns comandos diferentes em um array para ser exportado para csv, não está fornecendo o resultado pretendido. Está apenas imprimindo a saída dos primeiros comandos. Alguém pode me ajudar a juntar o resultado de todas as três variáveis? O que estou tentando fazer é escrever um script para automatizar a geração de nosso relatório de avaliação de capacidade e inventário do SQL Server.

Segue meu código até agora:

$Servers = Get-Content 'C:\Users\temp\ServerList.txt'

$reportData = @()

foreach ($Server in $Servers) {

  if (Test-Connection -ComputerName $Server -Count 1 -ErrorAction 'SilentlyContinue') {

    $OSInfo=Get-DbaOperatingSystem -ComputerName MyServer| Select ComputerName, OSVersion, Version, Architecture
    $DiskSPace=Get-DbaDiskSpace -ComputerName MyServer| Select ComputerName, Label, Name, Capacity, Free
    $SQLInstanceInfo=Connect-DbaInstance -SqlInstance MyServer | Select DbaInstanceName, Edition, NetPort, IsClustered, Processors, ProductLevel, ServiceName, 


    $reportData +=$OSInfo
    $reportData +=$DiskSPace
    $reportData +=$SQLInstanceInfo

  }

  else {

    write-host $Server "not connected"
  }
}

Write-Output $reportData | Format-Table
powershell array
  • 1 respostas
  • 361 Views
Martin Hope
Ali
Asked: 2020-02-25 11:46:31 +0800 CST

Monitoramento de banco de dados SQL Server 2000

  • 0

Eu nunca trabalhei no SQL Server 2000 e recebi um requisito para verificar a captura das seguintes informações em um banco de dados específico.

DBName CurrentDate SPID BatchDuration ApplicationName HostName LoginName SQLQuery

Tentei a consulta abaixo, mas em primeiro lugar ela não retornou nenhuma informação ou não atende ao requisito, pois não captura o ApplicationName e o SQL Text.

SELECT
    DB_NAME(dbid) as dbName
,   CURRENT_TIMESTAMP as CurrentDate
,   P.spid
,   right(convert(varchar, 
        dateadd(ms, datediff(ms, P.last_batch, getdate()), '2000-01-01'), 
        121), 12) as 'batch_duration'
,   P.program_name
,   P.hostname
,   P.loginame
,   P.cmd
from master.dbo.sysprocesses P
where P.spid > 50
and      P.status not in ('background', 'sleeping')
and      P.cmd not in ('AWAITING COMMAND'
                ,'MIRROR HANDLER'
                ,'LAZY WRITER'
                ,'CHECKPOINT SLEEP'
                ,'RA MANAGER')
and DB_NAME(dbid) ='master'
order by batch_duration desc

Além disso, quando tento configurar este script via SQL Agent, ele só permite executá-lo a cada intervalo de um minuto. Existe alguma outra maneira melhor de executá-lo a cada 5 segundos? ou talvez eu deva usar outro método, por exemplo, capturando os logins com as informações necessárias via gatilho?

Qualquer entrada será apreciada.

sql-server-2000 t-sql
  • 1 respostas
  • 77 Views
Martin Hope
Ali
Asked: 2020-01-26 09:38:50 +0800 CST

SQL Server Automatize a atualização de uma tabela apenas de um ambiente para outro

  • 0

Estou procurando uma melhor prática/opção para atualizar uma tabela apenas do ambiente Prod para Staging.

Detalhes técnicos:

  1. A tabela em Source está sendo carregada diariamente com novos dados.
  2. A tabela no destino deve representar novos dados somente quando atualizada.

Algumas das opções que estou pensando:

  1. Replicação (transacional)
  2. SSIS
  3. Script TSQL - Trabalho do SQL Agent

Minhas primeiras preferências seriam a opção 3. Esta será uma boa opção? Se sim, alguém pode me guiar para um script.

sql-server t-sql
  • 1 respostas
  • 838 Views
Martin Hope
Ali
Asked: 2019-09-25 10:00:17 +0800 CST

Mensagem de erro de ajuda dentro do T-SQL dinâmico

  • 0

Eu tenho um requisito para criar relatórios para índices para todo o nosso ambiente de produção:

Encontrei o script abaixo on-line e o modifiquei de acordo com meus requisitos e tentei executá-lo usando o cursor (também tentei sp_MSForEachDb) para obter o resultado de todos os bancos de dados na instância. O script deve mostrar todos os índices Exact Duplicate em um banco de dados específico.

Embora eu tenha colocado minha consulta entre aspas duplas, continuo recebendo muitos erros.

Se eu executar o script sem loop ele retorna o resultado corretamente.

Por favor, veja o script e os erros que estou recebendo abaixo do script. Eu tenho lutado com isso nos últimos dias e olhei exaustivamente online aqui e em muitos outros posts, mas não consigo descobrir isso.

Precisarei enviar o resultado no corpo do email para nossa lista de distribuição para todos os servidores. então, eu apreciarei se alguém tiver uma idéia melhor sobre como estabelecer isso.

Roteiro:

DECLARE @db_name AS nvarchar(max)
DECLARE c_db_names CURSOR FOR
SELECT name
FROM sys.databases
WHERE name NOT IN('master', 'model', 'msdb', 'tempdb') and state <> 1

OPEN c_db_names

FETCH c_db_names INTO @db_name

WHILE @@Fetch_Status = 0
BEGIN
IF OBJECT_ID('tempdb..#IndexTemp') IS NOT NULL DROP Table #IndexTemp --If exist drop the temp table. 
  EXEC('
   Begin
   USE ' + '[' + @db_name + ']' + '

                        ;WITH CTE_INDEX_DATA AS (
                       SELECT
                              SCHEMA_DATA.name AS schema_name,
                              TABLE_DATA.name AS table_name,
                              INDEX_DATA.name AS index_name,
                              STUFF((SELECT  '', '' + COLUMN_DATA_KEY_COLS.name + '' '' + CASE WHEN INDEX_COLUMN_DATA_KEY_COLS.is_descending_key = 1 THEN ''DESC'' ELSE ''ASC'' END -- Include column order (ASC / DESC)
                                                  FROM    sys.tables AS T
                                                                INNER JOIN sys.indexes INDEX_DATA_KEY_COLS
                                                                ON T.object_id = INDEX_DATA_KEY_COLS.object_id
                                                                INNER JOIN sys.index_columns INDEX_COLUMN_DATA_KEY_COLS
                                                                ON INDEX_DATA_KEY_COLS.object_id = INDEX_COLUMN_DATA_KEY_COLS.object_id
                                                                AND INDEX_DATA_KEY_COLS.index_id = INDEX_COLUMN_DATA_KEY_COLS.index_id
                                                                INNER JOIN sys.columns COLUMN_DATA_KEY_COLS
                                                                ON T.object_id = COLUMN_DATA_KEY_COLS.object_id
                                                                AND INDEX_COLUMN_DATA_KEY_COLS.column_id = COLUMN_DATA_KEY_COLS.column_id
                                                  WHERE   INDEX_DATA.object_id = INDEX_DATA_KEY_COLS.object_id
                                                                AND INDEX_DATA.index_id = INDEX_DATA_KEY_COLS.index_id
                                                                AND INDEX_COLUMN_DATA_KEY_COLS.is_included_column = 0
                                                  ORDER BY INDEX_COLUMN_DATA_KEY_COLS.key_ordinal
                                                  FOR XML PATH('')), 1, 2, '') AS key_column_list ,
                          STUFF(( SELECT  '', '' + COLUMN_DATA_INC_COLS.name
                                                  FROM    sys.tables AS T
                                                                INNER JOIN sys.indexes INDEX_DATA_INC_COLS
                                                                ON T.object_id = INDEX_DATA_INC_COLS.object_id
                                                                INNER JOIN sys.index_columns INDEX_COLUMN_DATA_INC_COLS
                                                                ON INDEX_DATA_INC_COLS.object_id = INDEX_COLUMN_DATA_INC_COLS.object_id
                                                                AND INDEX_DATA_INC_COLS.index_id = INDEX_COLUMN_DATA_INC_COLS.index_id
                                                                INNER JOIN sys.columns COLUMN_DATA_INC_COLS
                                                                ON T.object_id = COLUMN_DATA_INC_COLS.object_id
                                                                AND INDEX_COLUMN_DATA_INC_COLS.column_id = COLUMN_DATA_INC_COLS.column_id
                                                  WHERE   INDEX_DATA.object_id = INDEX_DATA_INC_COLS.object_id
                                                                AND INDEX_DATA.index_id = INDEX_DATA_INC_COLS.index_id
                                                                AND INDEX_COLUMN_DATA_INC_COLS.is_included_column = 1
                                                  ORDER BY INDEX_COLUMN_DATA_INC_COLS.key_ordinal
                                                  FOR XML PATH('')), 1, 2, '') AS include_column_list,
                       INDEX_DATA.is_disabled -- Check if index is disabled before determining which dupe to drop (if applicable)
                       FROM sys.indexes INDEX_DATA
                       INNER JOIN sys.tables TABLE_DATA
                       ON TABLE_DATA.object_id = INDEX_DATA.object_id
                       INNER JOIN sys.schemas SCHEMA_DATA
                       ON SCHEMA_DATA.schema_id = TABLE_DATA.schema_id
                       WHERE TABLE_DATA.is_ms_shipped = 0
                       AND INDEX_DATA.type_desc IN (''NONCLUSTERED'', ''CLUSTERED'')
                ) 

                --Insert all records into a temp table #IndexTemp with appropriate filters:
                SELECT * INTO #IndexTemp
                FROM CTE_INDEX_DATA DUPE1
                WHERE EXISTS
                (SELECT * FROM CTE_INDEX_DATA DUPE2
                 WHERE DUPE1.schema_name = DUPE2.schema_name
                 AND DUPE1.table_name = DUPE2.table_name
                 AND DUPE1.key_column_list = DUPE2.key_column_list
                 AND ISNULL(DUPE1.include_column_list, '') = ISNULL(DUPE2.include_column_list, '')
                 AND DUPE1.index_name <> DUPE2.index_name)
                 AND INDEX_NAME NOT LIKE (''%PK%'')

                --Return duplicate tbale_names only 
                 SELECT * from #IndexTemp WHERE table_name IN
                    (SELECT table_name FROM #IndexTemp GROUP BY table_name HAVING COUNT(*) > 1)
                    ORDER BY table_name

   END')
  FETCH c_db_names INTO @db_name
END

CLOSE c_db_names
DEALLOCATE c_db_names

Para cada banco de dados, recebo estes erros:

Msg 156, Level 15, State 1, Line 24
Sintaxe incorreta perto da palavra-chave 'AS'.
Msg 156, Level 15, State 1, Line 38
Sintaxe incorreta perto da palavra-chave 'ORDER'.
Msg 4145, Level 15, State 1, Line 59
Uma expressão de tipo não booleano especificada em um contexto onde uma condição é esperada, próximo a 'AND'.

sql-server t-sql
  • 2 respostas
  • 116 Views
Martin Hope
Ali
Asked: 2019-08-22 14:10:26 +0800 CST

Script TSQL retornando resultado errado

  • 0

Estou tentando descobrir se um nome de índice específico "Test" existe em todos os bancos de dados usando o código abaixo. O resultado que estou obtendo é sempre "NOT EXIST" para todos os bancos de dados em uma instância. No entanto, o índice existe de fato em alguns dos bancos de dados. Alguém pode apontar onde o código está errado?

DECLARE @Name AS VARCHAR(100)
DECLARE dbCur CURSOR FOR
SELECT name FROM SYS.databases where name not in ('master','msdb','model','tempdb')
OPEN dbCur
FETCH NEXT FROM dbCur
INTO @Name
WHILE @@FETCH_STATUS = 0
BEGIN
--Check if index exist    
   EXECUTE('USE [' + @Name + ']')
   If 1 = ((SELECT COUNT(*) as index_count
        FROM sys.indexes 
        WHERE object_id = OBJECT_ID('dbo.TestTable')
        AND name = 'Test')) 
    Print 'INDEX EXIST ' + @Name;
    ELSE
    Print 'INDEX DOES NOT EXIST ' + @Name;
   FETCH NEXT FROM dbCur
INTO @Name
END
CLOSE dbCur
DEALLOCATE dbCur

Resultado:

  INDEX DOES NOT EXIST DB1
  INDEX DOES NOT EXIST DB2
  INDEX DOES NOT EXIST DB3
  INDEX DOES NOT EXIST DB4
sql-server t-sql
  • 2 respostas
  • 80 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