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

Henrik Staun Poulsen's questions

Martin Hope
Henrik Staun Poulsen
Asked: 2024-05-16 21:55:45 +0800 CST

CXSYNC_PORT & "CPU prolongada e baixa"

  • 3

Eu tenho uma consulta simples, como
select * from MyTable where MyTableID=@p1
onde sp_BlitzCache me avisa sobre "Long Running with Low CPU". A tabela possui um índice clusterizado em MyTableID, que é um identificador/GUID exclusivo.

Isso pode ser causado pela execução da instrução com muita frequência?
Sim, este é o Entity Framework, e estamos tentando torná-lo mais rápido, sem alterar muito o código C# (pois leva muito tempo).

Atualmente rodando em vCores = 80, e isso é "um pouco" caro. Tentei seguir https://www.brentozar.com/blitzcache/long-running-low-cpu/ , mas as diretrizes não são claras para mim.
sp_whoisactive mostra muitas instruções com Async_Network_IO
sp_BlitzFirst mostra CXSYNC_PORT como o principal tipo de espera, de longe, mas não consigo encontrar nenhuma informação sobre isso e não sei se está relacionado a esta consulta ou a uma das muitas outras consultas em execução .

Tentei encontrar um plano de execução, mas sp_BlitzIndex mostra apenas a instrução SQL. Mas, considerando isso, recebo este plano: https://www.brentozar.com/pastetheplan/?id=r11D40QQ0 Ele foi executado 13.441.177 vezes em meu servidor de teste que está ativo há 55 horas.

Por que recebo "CPU prolongada e baixa" e como faço para corrigir isso?
Também vejo INSERTs e UPDATEs simples recebendo esse rótulo.
Todos esses "tempos de baixa CPU" podem ser causados ​​por um disco lento?

azure-sql-database
  • 1 respostas
  • 64 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2020-08-07 03:36:11 +0800 CST

string ou dados binários seriam truncados na tabela '******', coluna '******'. Valor truncado: '*******'

  • 10

Um de nossos aplicativos relata a mensagem de erro 2628:

string or binary data would be truncated in table '******', column '******'. Truncated value: '******'

ao invés de

String or binary data would be truncated in table 'mytable', column 'mycolumn'. Truncated value: 'myvalue'.

que eu recebo com SSMS.

Que configuração preciso alterar para obter a mensagem completa?

Tentei procurar por isso, mas tudo o que consigo é que preciso definir VERBOSE_TRUNCATION_WARNINGS como ON e compatibility_level como 150. O que fiz há muito tempo.

O aplicativo tem este manipulador de erros:

 try
     {
         ES.isWorking = true;
         Worker worker = new Worker(new DBConnection(Settings.ConnectionString));
         worker.DoWork();
         ES.isWorking = false;
     }
 catch (Exception ex)
     {
         ES.isWorking = false;
         this.eventLog.WriteEntry("In OnTimer exception ! message: " + ex.Message.ToString());
         errorHandler.HandleException(ex, "In OnTimer exception !", ErrorSeverities.Error);
     }

O errorHandler se parece com isso

Public Function HandleException(ByVal incommingEx As System.Exception,
                                   ByVal note As String,
                                   ByVal errorSeverity As ErrorSeverities,
                                   Optional ByVal sessionId As String = "",
                                   Optional ByVal applicationSource As String = "",
                                   Optional ByVal ignoreDB As Boolean = False,
                                   Optional ByVal noMail As Boolean = False) As Integer
    Dim stackTraceBuilder As New System.Text.StringBuilder
    Dim targetSite As String = ""
    Dim errorTime As DateTime = Now
    Dim messageBuilder As New System.Text.StringBuilder
    Dim innerEx As Exception = incommingEx.InnerException
    Dim errorId As Integer = 0
    Dim innerCount As Integer = 1
    Dim loggedToDb As Boolean = False
    Dim appSource As String = Me._applicationSource
    If applicationSource <> "" Then
        appSource = applicationSource
    End If
    '... more code'

    messageBuilder.AppendLine("(" + incommingEx.GetType.Name.ToUpper + ")" + vbCrLf + incommingEx.Message + " - SOURCE: " + incommingEx.Source)
    '...'
    While Not innerEx Is Nothing And innerCount <= 5
        messageBuilder.AppendLine("INNER" + Convert.ToString(innerCount) + " (" + innerEx.GetType.Name.ToUpper + "):" + vbCrLf + **innerEx.Message** + " - SOURCE: " + innerEx.Source)
        If Not innerEx Is Nothing AndAlso Not innerEx.StackTrace Is Nothing Then
            stackTraceBuilder.AppendLine("INNER" + Convert.ToString(innerCount) + ": " + innerEx.StackTrace) 'Me.GetNumberedStack(innerEx))
        End If
        innerEx = innerEx.InnerException
        innerCount += 1
    End While
    '... more code where the error message is inserted in a log table, via a sproc'
End Function

Não vimos esse comportamento antes, mas atualizamos recentemente o framework .net para a versão 4.7.2, para que possa estar relacionado.

o texto de erro "string ou binário" está vindo do bit que vai

  • innerEx.Message + e esse é um tipo de dados Exception interno simples. Portanto, é VB e/ou .net e/ou SQL Server que está construindo a string, não nós.

O erro ocorre após uma chamada para um procedimento armazenado, onde o usuário provavelmente digitou um texto varchar(1000). O procedimento armazenado adiciona um pouco mais e a tabela não tem espaço para todos os 1100 bytes. Daí o erro. O procedimento armazenado não tem um bloco try-catch.

sql-server azure-sql-database
  • 5 respostas
  • 2343 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2019-09-13 00:04:03 +0800 CST

Criando meu primeiro trabalho de banco de dados elástico no Azure

  • 1

Em https://learn.microsoft.com/en-us/azure/sql-database/sql-database-job-automation-overview diz que há um novo substituto para o SQL Agent. No entanto, não consigo fazê-lo funcionar.

Tive problemas em aceitar os termos do "software Beta", mas meu gerente aceitou os termos em sua conta e pude continuar.

No portal recebo esta mensagem de erro:

Deployment failed
Deployment to resource group 'MyRG' failed.
Additional details from the underlying API that might be helpful: At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.

Eu também tentei a interface Powershell , e aqui fico preso

New-AzSqlElasticJobAgent : No tenant found in the context.  Please ensure that the credentials you provided are authorized to access an Azure subscription, then run Connect-AzAccount to login.
At line:4 char:28
+ $JobAgent = $JobDatabase | New-AzSqlElasticJobAgent -Name $AgentName
+                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzSqlElasticJobAgent], ArgumentException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Sql.ElasticJobs.Cmdlet.NewAzureSqlElasticJobAgent

Provavelmente é algo simples, mas não consigo descobrir o que ...

azure-sql-database azure
  • 2 respostas
  • 179 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2019-08-12 22:17:05 +0800 CST

Relatório incorreto "Colunas de dados confidenciais devem ser classificadas"

  • 1

Toda semana estou recebendo um relatório de email de "Avaliação de Vulnerabilidade" com falha do meu Banco de Dados SQL do Microsoft Azure que está incorreto.
Ele reclama de colunas que possuem coluna is_computed em sys.columns definida como 1.
Não é possível adicionar uma classificação para essas colunas.

insira a descrição da imagem aqui

É possível parar o aviso?

azure-sql-database vulnerability-assessment
  • 2 respostas
  • 1265 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2019-03-22 10:49:31 +0800 CST

scheduler_count no banco de dados SQL do Azure

  • 1

Estou tentando encontrar um scheduler_count para meu banco de dados SQL do Azure, para que eu possa executar o sp_Blitz. Em todas as outras plataformas, scheduler_count pode ser lido em sys.dm_os_sys_info, mas esse dmv não está disponível no momento.

SELECT scheduler_count, * FROM sys.dm_os_sys_info;

Você conhece uma maneira de encontrá-lo?

Eu também preciso de uma (estimativa para) cpu_count.

sql-server azure-sql-database
  • 1 respostas
  • 78 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2019-01-30 00:01:15 +0800 CST

instalar FirstResponderKit no Azure SQL DB?

  • 4

Acabei de baixar a versão mais recente (20190128) do FirstResponderKit de BrentOzar.com e tentei instalá-lo no Azure SQL DB. Estou recebendo esses erros:

Msg 40515, Level 15, State 1, Procedure sp_AllNightLog, Line 16 [Batch Start Line 13]
Reference to database and/or server name in 'master.sys.procedures' is not supported in this version of SQL Server.
Msg 40515, Level 15, State 1, Procedure sp_AllNightLog_Setup, Line 16 [Batch Start Line 1492]
Reference to database and/or server name in 'master.sys.procedures' is not supported in this version of SQL Server.
Msg 40515, Level 15, State 1, Procedure sp_Blitz, Line 16 [Batch Start Line 2801]
Reference to database and/or server name in 'master.sys.all_objects' is not supported in this version of SQL Server.
Msg 40515, Level 15, State 1, Procedure sp_BlitzLock, Line 16 [Batch Start Line 28063]
Reference to database and/or server name in 'msdb.dbo.sysjobs' is not supported in this version of SQL Server.
Msg 40515, Level 15, State 1, Procedure sp_DatabaseRestore, Line 16 [Batch Start Line 35912]
Reference to database and/or server name in 'master.sys.xp_dirtree' is not supported in this version of SQL Server.

Ele instala bem no meu SQL Server 2008.

O FirstResponderKit funciona no Azure?

Edit: A maior parte dele roda, e eu comecei a mudar o sp_blitz, para que ele rodasse também. por favor, veja meu github se você quiser testá-lo.

Edit2: executei -o em um novo banco de dados SQL do Azure que mudei do local. Ele encontrou dois problemas para mim (causados ​​pelo Microsoft Data Migration Assistant) sobre estatísticas não atualizadas e muitos índices que foram desabilitados. Acho que outras pessoas encontrarão problemas semelhantes, se pudermos colocar esta versão na versão principal.

Precisa-se de testadores!

azure-sql-database sp-blitz
  • 1 respostas
  • 1263 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2018-10-27 04:30:03 +0800 CST

"Avisos: A operação causou E/S residual" versus pesquisas de chave

  • 9

Eu vi este aviso nos planos de execução do SQL Server 2017:

Avisos: A operação causou E/S residual [sic]. O número real de linhas lidas foi (3.321.318), mas o número de linhas retornadas foi 40.

Aqui está um trecho do SQLSentry PlanExplorer:

Insira a descrição da imagem aqui

Para melhorar o código, adicionei um índice não clusterizado, para que o SQL Server possa acessar as linhas relevantes. Funciona bem, mas normalmente haveria muitas colunas (grandes) para incluir no índice. Se parece com isso:

Insira a descrição da imagem aqui

Se eu adicionar apenas o índice, sem incluir colunas, fica assim, se eu forçar o uso do índice:

Insira a descrição da imagem aqui

Obviamente, o SQL Server acha que a pesquisa de chave é muito mais cara do que a E/S residual. Eu tenho uma configuração de teste sem muitos dados de teste (ainda), mas quando o código entra em produção, ele precisa trabalhar com muito mais dados, então tenho certeza de que algum tipo de índice NonClustered é necessário.

As pesquisas de chave são realmente tão caras , quando você executa em SSDs, que eu tenho que criar índices completos (com muitas colunas de inclusão)?


Plano de execução: https://www.brentozar.com/pastetheplan/?id=SJtiRte2X Faz parte de um procedimento armazenado longo. Procure IX_BatchNo_DeviceNo_CreatedUTC.

sql-server optimization
  • 1 respostas
  • 6166 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2018-04-26 23:31:50 +0800 CST

Falha durante a instalação do SQL Server 2016 sp2

  • 4

Estou tentando instalar o novo SP2 para SQL Server 2016, mas ele falha durante a instalação com um erro de mecanismo. Isto é o que eu posso ler no errorlog>

Erro: 468, Gravidade: 16, Estado: 9.
Não é possível resolver o conflito de agrupamento entre "Latin1_General_CI_AS" e "SQL_Latin1_General_CP1_CI_AS" na operação igual a.
O lote com falha de instruções t-sql:
CREATE PROCEDURE sp_sqlagent_get_perf_counters @all_counters BIT = 0 AS BEGIN ...

Erro: 912, Gravidade: 21, Estado: 2.

A atualização de nível de script para o banco de dados 'master' falhou porque a etapa de atualização 'msdb110_upgrade.sql' encontrou o erro 200, estado 7, gravidade 25. Esta é uma condição de erro grave que pode interferir na operação regular e o banco de dados será colocado offline. Se o erro ocorreu durante a atualização do banco de dados 'mestre', ele impedirá que toda a instância do SQL Server seja iniciada. Examine as entradas anteriores do log de erros em busca de erros, execute as ações corretivas apropriadas e reinicie o banco de dados para que as etapas de atualização do script sejam executadas até a conclusão.

Erro: 3417, Gravidade: 21, Estado: 3.

Não é possível recuperar o banco de dados mestre. O SQL Server não pode ser executado. Restaure o mestre de um backup completo, repare-o ou reconstrua-o. Para obter mais informações sobre como reconstruir o banco de dados mestre, consulte os Manuais Online do SQL Server.

O desligamento do SQL Server foi iniciado

O banco de dados mestre estava executando "Latin1_General_CI_AS" e o MSDB (e outros dbs) estava executando "SQL_Latin1_General_CP1_CI_AS".

Tenho novos backups de todos os bancos de dados no servidor incluindo master e msdb.

Estou tentado a tentar restaurar o master master conforme mostrado em https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-the-master-database-transact-sql? view=sql-server-2017

Mas estou tentando garantir que realmente funcione, e não apenas piore a situação.

Como faço para que meu SQL Server volte a funcionar?

EDIT: Eu iniciei o serviço mssqlserver assim:

NET START MSSQLSERVER /T902

Isso faz com que o servidor seja iniciado, e eu examinei msdb110_upgrade.sql e encontrei alguns "COLLATE DATABASE_DEFAULT" ausentes que adicionei.

Mas não está levando minhas alterações.

sql-server sql-server-2016
  • 2 respostas
  • 5845 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2017-08-25 23:01:29 +0800 CST

A tarefa do SQL Agent PowerShell nunca termina

  • 7

Sou bastante novo no PowerShell e agora encontrei dbatools.io, onde gostaria de executar uma tarefa do PowerShell no SQL Agent como

$ExportPath = $env:TEMP + '\DriveSpace.csv'
$datatable = Import-Csv $ExportPath | Out-DbaDataTable
Write-DbaDataTable -SqlServer MyServer -Database Utils -InputObject  $datatable -Table dbo.FreeSpaceOnDiskDrive -AutoCreateTable

Começa, mas nunca termina. Eu também tentei ter uma tarefa que está fazendo isso:

Get-DbaDatabaseSpace -SqlServer MyServer -IncludeSystemDBs | Out-DbaDataTable | Write-DbaDataTable -SqlServer MyServer -database utils -Table dbo.DiskSpaceExample -AutoCreateTable

Mesmo problema. Ele funciona bem no Windows PowerShell ISE, mas apenas trava no SQL Agent. Então agora ele criou uma nova tabela para mim e a preencheu com dados, mas o trabalho continua em execução.

sql-server sql-server-2016
  • 4 respostas
  • 5015 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2017-04-29 03:23:36 +0800 CST

Qual é a sobrecarga de linha ao usar a compactação de página?

  • 10

Eu criei uma tabela com 650 colunas Numeric(19,4). Quando ligo a compactação de página, executando

ALTER TABLE fct.MyTable REBUILD  WITH (DATA_COMPRESSION = PAGE);

eu recebo

Msg 1975, Level 16, State 1
Index O comprimento da linha 'PK_Mytable' excede o comprimento máximo permitido de '8060' bytes.

mas 650 vezes 9 bytes são apenas 5850 bytes, o que está bem longe do limite declarado de 8060 bytes.

O servidor está executando o Windows 2012 r2 com SQL Server 2016 SP1 CU2

Qual é a sobrecarga de linha ao usar a compactação de página?

Aqui está algum código para mostrar o que quero dizer:

/* test script to demo MSG 1975 */
DECLARE @sql NVARCHAR(max)='', @i INT =0
drop table if exists dbo.mytable;

SET @sql = 'Create table dbo.Mytable (MyTableID bigint not null 
  identity(1,1) primary key clustered, '

WHILE @i < 593 BEGIN
    SET @sql += ' Column' + LTRIM(@i) + ' numeric(19,4) null, '
    SET @i +=1
END

SET @sql += ' LastColumn int) '
--SET @sql += ' with (DATA_COMPRESSION = ROW) '
SET @sql += ' with (DATA_COMPRESSION = PAGE) '

SELECT @sql
EXEC sys.sp_executesql @sql

SELECT top 10000 * FROM dbo.MyTable MT

A compactação de linhas também falha, mas em uma contagem de linhas diferente.

sql-server-2016 compression
  • 1 respostas
  • 1598 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2017-02-16 05:47:30 +0800 CST

O SQL Server detectou um erro de E/S baseado em consistência lógica: pageid incorreto em RESTORE

  • 7

A restauração do nosso banco de dados para o novo hardware do servidor falhou com um erro de página.

Message
SQL Server detected a logical consistency-based I/O error: 
incorrect pageid (expected 49:8125916; actual 49:29097436).
It occurred during a read of page (49:8125916) in database ID 7 at
offset 0x00000f7fbb8000 in file x:\Databases\Data07\DataWarehouse_OperationalData_15.ndf'.
Additional messages in the SQL Server error log or system event
log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately.
Complete a full database consistency check (DBCC CHECKDB). 
This error can be caused by many factors; 
for more information, see SQL Server Books Online.

Um DBCC CheckDB nos levará cerca de uma semana neste banco de dados de 70 TB e servidor de 6 anos.
Existe alguma chance de que é meu backup que está corrompido?
Ou que o novo servidor está com defeito?
Ou é o banco de dados de produção no servidor antigo que é o problema?

Este é o SQL Server 2016 SP1 CU1 e page_verify_option_desc é CHECKSUM.

Isto é o que posso ver no log de erros no novo servidor:

Starting up database 'DataWarehouse'.
The database 'DataWarehouse' is marked RESTORING and is in a state that does not allow recovery to be run.
Error: 824, Severity: 16, State: 2.
SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 49:8125916; actual 49:29097436). It occurred during a read of page (49:8125916) in database ID 7 at offset 0x00000f7fbb8000 in file 'S:\MSSQL\DSA\Databases\DataWarehouse\Data07\DataWarehouse_OperationalData_15.ndf'.  Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
Error: 18456, Severity: 14, State: 38.

Quando eu executo isso no servidor antigo:

DBCC TRACEON (3604);
DBCC PAGE ('datawarehouse', 49, 8125916, 0);

Eu entendi isso

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

PAGE: (49:8125916)


BUFFER:


BUF @0x000000802C5E9300

bpage = 0x0000004DF03E8000          bhash = 0x0000000000000000          bpageno = (49:8125916)
bdbid = 5                           breferences = 1                     bcputicks = 0
bsampleCount = 0                    bUse1 = 5844                        bstat = 0x9
blog = 0x15ab215a                   bnext = 0x0000000000000000          bDirtyContext = 0x0000000000000000
bstat2 = 0x0                        

PAGE HEADER:


Page @0x0000004DF03E8000

m_pageId = (49:8125916)             m_headerVersion = 1                 m_type = 3
m_typeFlagBits = 0x0                m_level = 0                         m_flagBits = 0xa200
m_objId (AllocUnitId.idObj) = 10814647                                   m_indexId (AllocUnitId.idInd) = 256
Metadata: AllocUnitId = 72058302786633728                                
Metadata: PartitionId = 72058370492596224                                Metadata: IndexId = 1
Metadata: ObjectId = 1916450641     m_prevPage = (0:0)                  m_nextPage = (0:0)
pminlen = 0                         m_slotCnt = 2                       m_freeCnt = 2452
m_freeData = 5764                   m_reservedCnt = 0                   m_lsn = (2455108:11140830:20)
m_xactReserved = 0                  m_xdesId = (28:447547798)           m_ghostRecCnt = 0
m_tornBits = 31453216               DB Frag ID = 1                      

Allocation Status

GAM (49:7668480) = ALLOCATED        SGAM (49:7668481) = NOT ALLOCATED   
PFS (49:8120352) = 0x42 ALLOCATED  80_PCT_FULL                           DIFF (49:7668486) = CHANGED
ML (49:7668487) = NOT MIN_LOGGED    


DBCC execution completed. If DBCC printed error messages, contact your system administrator.

DBCC CHECKFILEGROUP está em execução no momento. Finalizado sem erros.

SeanGallardy comentou sobre os números binários. Levei muito tempo para ver o que ele queria dizer, mas finalmente digitei os dois números na Calculadora do Windows no modo Programador, e aqui está o que mostra: o vermelho mostra as diferenças

Atualização: Fizemos outro backup e restauração do servidor antigo para o novo. Desta vez recebemos esta mensagem:

Could not redo log record (2456609:4261461:64), for transaction ID (28:972770238), on page (48:211577379), allocation unit 72058359886184448, database 'DataWarehouse' (database ID 7). 
Page: LSN = (2456609:3279166:236), allocation unit = 72058351460417536, type = 20. Log: OpCode = 2, context 5, PrevPageLSN: (2456609:4250688:2). 
Restore from a backup of the database, or repair the database.

Tentei pesquisar no Google esta mensagem, mas o único conselho que posso encontrar é restaurar o banco de dados (que é o que estou tentando).

A verdadeira questão é; O que eu devo fazer a seguir?

sql-server restore
  • 1 respostas
  • 6136 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2016-11-26 06:34:18 +0800 CST

Log de erros de spam SSMS Intellisense

  • 1

Estou vendo milhares de linhas em nosso log de erros sobre logins com falha:

Erro: 18456, Gravidade: 14, Estado: 38.
Falha no login do usuário 'Nossaempresa\minhaconta'.
Razão: Falha ao abrir o banco de dados explicitamente especificado 'mydatabase'. [CLIENTE: 10.nn.nn.nn]

Alguns de nossos usuários não têm acesso a todos os bancos de dados do servidor. Quando desligo o Intellisense em SSMS -> Ferramentas -> Opções -> Editor de texto -> Transact-SQL -> IntelliSense , o spam é interrompido.

Isso é um bug no SSMS?
Existem maneiras de contornar isso (além de conceder acesso a todos os bancos de dados)?

sql-server ssms
  • 2 respostas
  • 384 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2016-11-26 01:50:51 +0800 CST

Ordenar por 1 encurta o conjunto de resultados para uma linha

  • 3

Estou executando a seguinte consulta:

DECLARE @sql NVARCHAR(max) = N''
SELECT @sql += N' EXEC dbo.DoSomething @Tablename = ''' + SCHEMA_NAME(T.schema_id) + N'.' + T.name + N''''
--SELECT * 
FROM sys.tables T
INNER JOIN sys.indexes I ON I.object_id = T.object_id
ORDER by 1 
PRINT  @sql

Mas estou imprimindo apenas uma linha. Se eu retirar a ORDER by 1linha ou substituí-la por
ORDER BY t.name, obtenho o resultado esperado.

Isso é um bug no SQL Server?
Eu tentei no SQL SErver 2016 SP1 e 2014 Sp2-Cu1.

sql-server sql-server-2016
  • 1 respostas
  • 191 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2016-11-19 02:25:42 +0800 CST

bug em database_scoped_configurations

  • 10

Estou tentando inserir o conjunto de resultados de:

SELECT * FROM sys.database_scoped_configurations

em uma tabela temporária, porque quero verificar as configurações de todos os bancos de dados em meu servidor. Então eu escrevi este código:

DROP TABLE IF EXISTS #h
CREATE TABLE #h(dbname sysname, configuration_id INT, name sysname,     value SQL_VARIANT,  value_for_secondary SQL_VARIANT)
EXEC sys.sp_MSforeachdb 'USE ?; insert into #h(dbname, configuration_id, name, value,value_for_secondary)  SELECT ''?'' as dbname, * FROM sys.database_scoped_configurations  D'
SELECT * FROM #h H

Mas então haverá apenas uma linha por banco de dados, não as quatro linhas que espero executar uma seleção simples em cada banco de dados.

Sei que existem maneiras melhores de codificar isso do que usar sp_MSForEachDB e tentei várias. Mas ainda recebo apenas uma linha por banco de dados. Eu tentei isso no SQL Server 2016 RTM e no SP1

Isso é um bug do SQL Server 2016 ou estou fazendo algo errado?

sql-server configuration
  • 4 respostas
  • 553 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2016-11-05 07:09:15 +0800 CST

stats_date é nulo [duplicado]

  • 2
Essa pergunta já tem resposta aqui :
As estatísticas desaparecem após a atualização incremental (1 resposta)
Fechado há 5 anos .

Se eu executar esta consulta em nosso sistema:

SELECT STATS_DATE(t.object_id, s.stats_id) AS stdate, * 
from    sys.stats s WITH (NOLOCK)
INNER JOIN sys.tables t WITH (NOLOCK) ON t.object_id = s.object_id
WHERE t.name LIKE 'mytable%'

Às vezes vejo que a stats_datefunção retorna NULL. Isso não deve ser possível de acordo com o BOL, exceto se houver um erro. Não informa qual erro.

A tabela é bem grande, 11 bilhões de linhas. Se eu correr:

UPDATE STATISTICS fct.mytable ( pk_mytable)

o stats_dateretorna novamente como não nulo.

Por que a data é nula e como posso evitar isso?

Apenas as estatísticas da chave primária são NULL.

Se eu correr:

DBCC SHOW_STATISTICS ('fct.MyTable', 'IX_MyTableID') 

ele volta com os 3 conjuntos de resultados que eu esperava. Se eu correr:

DBCC SHOW_STATISTICS ('fct.MyTable', 'PK_MyTable') 

Ele retorna:

insira a descrição da imagem aqui

sql-server sql-server-2016
  • 1 respostas
  • 1153 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2016-08-13 05:40:03 +0800 CST

ALTER DATABASE MODIFY FILEGROUP [myfilegroup] AUTOGROW_ALL_FILES

  • 5

Gostaria de alterar todos os grupos de arquivos em meu banco de dados para AutoGrow_all_Files, mas somente se atualmente for AutoGrow_Single_File, assim:

ALTER DATABASE mydatabase MODIFY FILEGROUP [myfilegroup] AUTOGROW_ALL_FILES

Como posso verificar essa propriedade do banco de dados?

sql-server sql-server-2016
  • 6 respostas
  • 3798 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2016-08-06 03:00:29 +0800 CST

Sinalizador de rastreamento 10260 no SQL Server 2016

  • 2

Nossos servidores de desenvolvimento do SQL Server 2016 têm o sinalizador de rastreamento 10260 definido na inicialização. Os outros servidores que executam o SQL Server 2016 não.
Eu pesquisei alto e baixo, mas não consegui encontrar nenhuma informação sobre o assunto.

O que esse sinalizador de rastreamento faz?

É seguro remover?

sql-server-2016 trace-flags
  • 1 respostas
  • 94 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2016-06-09 01:06:39 +0800 CST

Restaurar banco de dados com uma FileTable

  • 7

Temos um banco de dados SQL Server 2014 (build 12.0.24457.0) com duas tabelas, ambas são tabelas FileStream, a maior tem 2979466 linhas, SUM(cached_file_size)= 40564905472.

Tentamos restaurar esse banco de dados em nosso servidor de teste, mas leva muito tempo. Nosso DBA desistiu após 14 dias.

Alguém mais tentou restaurar um banco de dados com tabelas FileStream, com mais de alguns arquivos?

Estou executando este script para monitorar o progresso:

BEGIN TRY
    DROP TABLE #h 
END TRY
BEGIN CATCH
END CATCH

DECLARE @r INT=1, @percent_complete NUMERIC(9,2), @Extimated_Completion_Datetime DATETIME2(0)
CREATE TABLE #h ( start_time DATETIME2(0), percent_complete NUMERIC(9,2), Estimated_completion_time NUMERIC(9,2), HoursSinceStart NUMERIC(9,2), Extimated_Completion_Datetime DATETIME2(0), session_id INT, created_date datetime2(0))
DECLARE @d VARCHAR(19) , @e VARCHAR(max)


WHILE @r > 0 BEGIN 
    INSERT INTO #h
    SELECT start_time, percent_complete, CAST(ROUND(estimated_completion_time/3600000.0,1) AS DECIMAL(9,1)) AS Estimated_completion_time
    , CAST(ROUND(total_elapsed_time/3600000.0,1) AS DECIMAL(9,1)) AS HoursSinceStart
    , DATEADD(HOUR, CAST(ROUND(estimated_completion_time/3600000.0,1) AS DECIMAL(9,1)), GETDATE()) AS Extimated_Completion_Datetime
    , session_id
    , GETDATE()
    FROM
    sys.dm_exec_requests AS r
    WHERE
    r.session_id <> @@SPID
    AND r.session_id > 50
    AND command LIKE 'restore database'
    SELECT @r = @@ROWCOUNT

    select top 1 @percent_complete=percent_complete, @Extimated_Completion_Datetime=Extimated_Completion_Datetime from  #h ORDER BY created_date DESC
    SET @d = CONVERT(VARCHAR(19), @Extimated_Completion_Datetime, 121) 
    SET @e = CONVERT(VARCHAR(19), GETDATE(), 121) + ' we are ' + LTRIM(@percent_complete) + '% complete. We estimate to finish at: ' + @d
    RAISERROR('At %s ', 10, 1, @e) WITH NOWAIT


    --WAITFOR DELAY '00:00:10'
    WAITFOR DELAY '00:01:00'
END

Até agora eu tenho este resultado:

Em 2016-06-08 10:35:46, estamos 00,01% completos.
Em 2016-06-08 14:22:46, estamos 39,26% concluídos. Estimamos terminar em: 2016-06-08 18:22:47
Em 2016-06-08 14:23:46, estamos 39,27% concluídos. Estimamos terminar em: 2016-06-08 18:23:47
Em 2016-06-08 14:24:46, estamos 39,28% concluídos. Estimamos terminar em: 2016-06-08 18:24:47
...
Em 2016-06-09 08:33:07, estamos 44,80% concluídos. Estimamos terminar em: 2016-06-10 09:33:08
Em 2016-06-09 08:34:07, estamos 44,80% concluídos. Estimamos terminar em: 2016-06-10 09:34:08
Em 2016-06-09 08:35:07, estamos 44,80% concluídos. Estimamos terminar em: 2016-06-10 09:35:08
Em 2016-06-09 08:36:07, estamos 44,81% concluídos. Estimamos terminar em: 2016-06-10 09:36:08
Em 2016-06-09 08:37:07, estamos 44,81% concluídos. Estimamos terminar em: 2016-06-10 09:37:08
Em 2016-06-09 08:38:07, estamos 44,81% concluídos. Estimamos terminar em: 2016-06-10 09:38:08
Em 2016-06-09 08:39:07, estamos 44,82% concluídos. Estimamos terminar em: 2016-06-10 09:39:08
...
Em 2016-06-10 08:12:01, estamos 47,86% concluídos. Estimamos terminar em: 2016-06-12 08:12:02
Em 2016-06-10 08:13:01, estamos 47,86% concluídos. Estimamos terminar em: 2016-06-12 08:13:02

Não exatamente rápido. Conseguiu passar de 42% para 45% em 13h45, pelo que com a velocidade atual parece terminar às 13h45 de 27-06-2016, ou seja, em 18 dias. Para 44GB!

SELECT top 10000 resource_description AS resource_description, * 
FROM sys.dm_os_waiting_tasks
WHERE session_id=64

diz:

wait_type=BACKUPTHREAD

... às vezes BACKUPIOtambém

Então, configurei outra restauração para obter mensagens de restauração:

DBCC TRACEON(3604, 3605, 3014);
RESTORE DATABASE [VDCFileStreamhespotest] FROM  DISK = N'\\dkrdsvdcp19\MSSQL_Backup\Full\Misc\VDCFileStream_backup_2016_06_07_180004_7123139.bak' WITH  FILE = 1,  
NOUNLOAD,  REPLACE,  STATS = 1
, move 'VDCFileStream'      to 'P:\MSSQL\DPA\System\MSSQL10_50.DPA\MSSQL\DATA\UserDBs\VDCFileStream\VDCFileStreamDBhespo.mdf'
, MOVE 'VDCFileStream_log'  to 'P:\MSSQL\DPA\Log\Log02\VDCFileStream\VDCFileStreamDBhespo_log.ldf'
, MOVE 'VDCFileStreamF1'    to 'G:\VDCFileStream\FileStreamDatahespo'
Restore(VDCFileStreamhespotest): RESTORE DATABASE iniciado
Restore(VDCFileStreamhespotest): Abrindo o conjunto de backup
Restore(VDCFileStreamhespotest): processando os principais metadados
Restore(VDCFileStreamhespotest): O planejamento começa
Parâmetros de configuração do buffer de backup/restauração
Limite de memória: 32767 MB
Contagem de buffer: 6
Conjuntos de buffers: 2
MaxTransferSize: 1024 KB
Tamanho mínimo de transferência máxima: 1.024 KB
Espaço total do buffer: 12 MB
Contagem de dispositivos de dados tabulares: 1
Contagem de dispositivo de dados de texto completo: 0
Contagem de dispositivos de fluxo de arquivos: 1
Contagem de dispositivos TXF: 0
Alinhamento de E/S do sistema de arquivos: 512
Contagem de buffer de mídia: 6
Tamanho do buffer de mídia: 1024 KB
Contagem de buffer de codificação: 6
Restore(VDCFileStreamhespotest): Opções efetivas: Checksum=1, Compression=1, Encryption=0, BufferCount=6, MaxTransferSize=1024 KB
Restore(VDCFileStreamhespotest): Planejamento concluído
Restore(VDCFileStreamhespotest): Começando a restauração OFFLINE
Restore(VDCFileStreamhespotest): Banco de dados anexado como DB_ID=48
Restore(VDCFileStreamhespotest): Preparando contêineres
Restore(VDCFileStreamhespotest): os contêineres estão prontos
Restore(VDCFileStreamhespotest): Restaurando o conjunto de backup
Restore(VDCFileStreamhespotest): Tamanho total estimado para transferência = 45540792320 bytes
Restore(VDCFileStreamhespotest): Transferindo dados
1% processado.

Aqui, 5 dias depois, estamos na metade do caminho:mas o resto da viagem vai ser longo

sql-server sql-server-2014
  • 2 respostas
  • 702 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2016-04-13 05:12:34 +0800 CST

como obter o custo estimado da subárvore?

  • 7

Se eu tiver uma consulta que retorne um query_plan, por exemplo, assim:

    SELECT TOP 1000 st.TEXT
    ,cp.size_in_bytes
    ,cp.plan_handle
    ,QP.query_plan
FROM sys.dm_exec_cached_plans AS cp
CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) AS st
CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle) AS QP
WHERE cp.objtype = N'Adhoc'
    AND cp.usecounts = 1

Em seguida, posso clicar em um query_plan e passar o mouse sobre o ícone mais à esquerda, onde o texto da dica listará o custo estimado da subárvore.

Existe uma maneira de obter isso Estimated Subtree Costcomo uma coluna separada para minha consulta?

Entendo que o número não tem unidade e se refere a um determinado PC de desenvolvedor há cerca de 20 anos. Mesmo assim, acho que pode me dizer quanto tempo a consulta deve levar se as estatísticas não estiverem muito distantes.

Eu tentei muito pesquisar essas informações no Google, mas até mesmo dba.stackexchange.com está vazio.

sql-server sql-server-2014
  • 2 respostas
  • 1586 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2016-01-08 23:47:19 +0800 CST

sp_Blitz diz "Verificação de página não ideal" no banco de dados MDS

  • 5

Executei sp_blitz (versão 45) em nosso servidor de banco de dados de teste. Ele reclama sobre

O banco de dados [MDS] tem TORN_PAGE_DETECTION para verificação de página. O SQL Server pode ter mais dificuldade em reconhecer e recuperar dados corrompidos no armazenamento. Considere usar CHECKSUM em vez disso.

Mas este é um banco de dados da Microsoft.
É aconselhável alterar a verificação da página para CheckSum?

Ou devemos esperar que a Microsoft lance uma nova versão do MDS?

sql-server sp-blitz
  • 1 respostas
  • 910 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