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

reticentKoala's questions

Martin Hope
reticentKoala
Asked: 2014-09-11 07:24:04 +0800 CST

Usando TOP e obtendo conjuntos de resultados diferentes

  • 3

Estou tentando escrever uma consulta eficiente para excluir blocos de dados. Para esse fim, esperava evitar uma varredura de índice usando a chave primária para obter os registros mais antigos. No entanto, estou vendo alguns resultados inesperados retornados.

eu esperava isso

SELECT TOP 15 OrderID FROM [Order]

Me daria os 15 registros mais antigos porque eu poderia confiar no incremento da chave primária e, portanto, a ordem de armazenamento seria baixa para alta na tabela.

No entanto, isso retorna um conjunto de resultados diferente

SELECT TOP 15 OrderID FROM [Order] ORDER BY DateCreated ASC

O que parece ser uma maneira mais precisa, mas mais cara, de obter o resultado de que preciso.

Confusamente, isso

SELECT TOP 15 * FROM [Order]

Fornece um conjunto diferente de OrderID s (PK) para este

SELECT TOP 15 OrderID FROM [Order]

Entendo que http://msdn.microsoft.com/en-gb/library/ms189463.aspx explica que o pedido não pode ser garantido sem uma cláusula ORDER BY, mas esperava que o PK fizesse o pedido para mim e não pode explicar as diferenças entre os duas últimas cláusulas selecionadas.

sql-server t-sql
  • 1 respostas
  • 2511 Views
Martin Hope
reticentKoala
Asked: 2014-07-30 01:34:13 +0800 CST

Reiniciando um editor envolvido na replicação de mesclagem

  • 1

Nosso provedor de hospedagem gostaria de reiniciar o SQL Server que um publicador em uma topologia de replicação de mesclagem.

Não consigo entender claramente as práticas recomendadas para fazer isso nos documentos da Microsoft.

Nossa topologia consiste em aproximadamente 40 assinantes Pull. A sincronização é executada em uma programação a cada 5 minutos por meio de uma tarefa agendada do Windows que executa um aplicativo que chama RMO.

Algumas das minhas preocupações incluem: As transações serão sinalizadas com segurança nos assinantes - imagino que isso possa causar um aumento no log de transações? Qual é um período de tempo razoável para o Editor ficar offline - preciso me preocupar com a expiração?

Se alguém pudesse descrever quais etapas seriam envolvidas no desligamento seguro do Editor, seria de grande ajuda.

Muito Obrigado.

replication merge-replication
  • 1 respostas
  • 350 Views
Martin Hope
reticentKoala
Asked: 2013-09-20 01:59:06 +0800 CST

Tamanho excessivo do instantâneo de replicação causando falha

  • 3

Estou procurando uma explicação para um instantâneo de replicação ser superior a 5 vezes o que estamos prevendo

Após uma falha de replicação, estamos tentando reinicializar as assinaturas com um novo instantâneo. O tamanho do banco de dados é de 135 GB, uma tabela dentro do banco de dados é de 60 GB - excluímos este artigo da publicação. Isso significava que tínhamos uma expectativa de que o tamanho do snapshot fosse de aproximadamente 75 GB.

Fizemos várias tentativas de criar o instantâneo e elas falharam devido à falta de espaço em disco. Ontem à noite, o instantâneo preencheu um disco com 340 GB de espaço livre.

Gostaria de receber qualquer explicação para esse enorme tamanho de instantâneo.

Em meu exame das possíveis causas, observo que o formato do instantâneo está definido como "Caractere - Obrigatório se um editor ou assinante não estiver executando o SQL Server". Isso apesar do fato de que em ambas as extremidades dessa replicação transnacional está o SQL Server nativo. Existe um tamanho diferente entre os formatos?

Desde já, obrigado.

Native mode file Size:105 MB
C:>bcp IVM_ArchiveTest.dbo.Event out D:\NOBACKUP\UseOnce\EventNative.dat -T -n 
218977 rows copied. Network packet size (bytes): 4096 Clock Time (ms.) 
Total : 7878 Average : (27796.01 rows per sec.) 

Character mode file Size:66 MB 
C:\>bcp IVM_ArchiveTest.dbo.Event out D:\NOBACKUP\UseOnce\EventChar.dat -T -c 
218977 rows copied. Network packet size (bytes): 4096 Clock Time (ms.) 
Total : 1654 Average : (132392.38 rows per sec.) 
sql-server replication
  • 2 respostas
  • 4041 Views
Martin Hope
reticentKoala
Asked: 2013-06-29 00:23:54 +0800 CST

Diagnosticando problemas de bloqueio usando o relatório Processo bloqueado

  • 2

Eu tenho um aplicativo que está indo para baixo como resultado de tempos limite. Durante esses períodos, vemos um aumento maciço nos tempos de resposta do banco de dados que contém o estado da sessão ASP.

Em um esforço para diagnosticar o problema, usei SP_CONFIGURE'blocked process threshold',15e executei um rastreamento para capturar todos os eventos disparados. Durante o próximo incidente, o rastreamento captura alguns eventos de bloqueio no banco de dados do estado da sessão.

Identifiquei o bloqueador de chumbo e posso ver que está suspenso e esperando.

<blocked-process-report>
    <blocked-process>
        <process id="process53fb4c8" 
                 taskpriority="0" logused="0" 
                 waitresource="KEY: 10:72057594039238656 (594b17b7493c)" waittime="20631"
                 ownerId="9710782702" transactionname="UPDATE" 
                 lasttranstarted="2013-06-27T17:29:38.130" XDES="0xc429df950" lockMode="U" 
                 schedulerid="14" kpid="6912" status="suspended" spid="359" sbid="0" ecid="0" 
                 priority="0" trancount="2" lastbatchstarted="2013-06-27T17:29:38.130"
                 lastbatchcompleted="2013-06-27T17:29:38.107" 
                 clientapp=".Net SqlClient Data Provider" hostname="WEB03" hostpid="7520" 
                 loginname="State" isolationlevel="read committed (2)" xactid="9710782702" 
                 currentdb="10" lockTimeout="4294967295" 
                 clientoption1="536870944" clientoption2="128056">
            <executionStack>
                <frame line="18" stmtstart="1114" stmtend="4494" 
                       sqlhandle="0x03000a00210f020741a1be0058a000000100000000000000"/>
            </executionStack>
            <inputbuf>
                Proc [Database Id = 10 Object Id = 117575457]
            </inputbuf>
        </process>
    </blocked-process>
    <blocking-process>
        <process status="suspended" waittime="1046" spid="217" sbid="0" ecid="0" 
                 priority="0" trancount="1" lastbatchstarted="2013-06-27T17:29:29.113" 
                 lastbatchcompleted="2013-06-27T17:29:29.010" 
                 clientapp=".Net SqlClient Data Provider" hostname="WEB02" hostpid="6236" 
                 loginname="CState" isolationlevel="read committed (2)" xactid="9710776428" 
                 currentdb="10" lockTimeout="4294967295" clientoption1="536870944" 
                 clientoption2="128056">
            <executionStack>
                <frame line="18" stmtstart="1114" stmtend="4494" 
                       sqlhandle="0x03000a00210f020741a1be0058a000000100000000000000"/>
            </executionStack>
            <inputbuf>
                Proc [Database Id = 10 Object Id = 117575457]
            </inputbuf>
        </process>
    </blocking-process>
</blocked-process-report>

minhas perguntas são

  1. Para que serve a unidade de tempo waittime="1046"?
  2. Em que recurso está a espera?
  3. Para onde ir a partir daqui?
sql-server locking
  • 1 respostas
  • 5559 Views
Martin Hope
reticentKoala
Asked: 2013-03-28 08:28:54 +0800 CST

Localizar programaticamente índices que não podem ser reconstruídos online

  • 5

Estou automatizando a reconstrução e reorganização de índices usando T-SQL. Tenho problemas com índices que não podem ser reconstruídos online. Principalmente isso acontece porque as colunas ntext/nvarchar estão incluídas.

Existe uma maneira de identificá-los programaticamente como parte desta declaração? Então, tipo de adição ao predicado WHERE

SELECT 
--TOP 20
OBJECT_NAME(IPS.OBJECT_ID) AS [TableName], avg_fragmentation_in_percent, SI.name         [IndexName],  
schema_name(ST.schema_id) AS [SchemaName], 0 AS IsProcessed 
INTO #FramentedTableList 
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL , NULL) IPS 
JOIN sys.tables ST WITH (nolock) ON IPS.OBJECT_ID = ST.OBJECT_ID 
JOIN sys.indexes SI WITH (nolock) ON IPS.OBJECT_ID = SI.OBJECT_ID AND IPS.index_id =   SI.index_id 
WHERE ST.is_ms_shipped = 0 AND SI.name IS NOT NULL 
AND avg_fragmentation_in_percent >= CONVERT(DECIMAL,   @FragmentationThresholdForReorganizeTableLowerLimit) 
ORDER BY avg_fragmentation_in_percent DESC 
sql-server index
  • 3 respostas
  • 2465 Views
Martin Hope
reticentKoala
Asked: 2013-02-20 06:41:18 +0800 CST

Notificações de consulta e opções de conexão

  • 0

Estou investigando um problema com notificações de consulta. A plataforma é SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Standard Edition.

Erros .NET mostram um problema relatado de SqlNotificationInfo Enumeration ( http://msdn.microsoft.com/en-gb/library/system.data.sqlclient.sqlnotificationinfo(v=vs.80).aspx ) como: Razão do Evento: Isolamento .

Durante o rastreamento, percebo que o evento de login de auditoria imediatamente anterior à conversa do Broker mostra:

 -- network protocol: TCP/IP
    set quoted_identifier on
    set arithabort off
    set numeric_roundabort off
    set ansi_warnings on
    set ansi_padding on
    set ansi_nulls on
    set concat_null_yields_null on
    set cursor_close_on_commit off
    set implicit_transactions off
    set language us_english
    set dateformat mdy
    set datefirst 7
    set transaction isolation level read uncommitted

Portanto, minha teoria de trabalho é que o nível de isolamento da transação usado para a conversa não é suportado. Mas onde está esse conjunto e como posso alterá-lo?

Eu li sobre um problema semelhante aqui:

http://www.roelvanlisdonk.nl/?p=3144 e

http://www.sqlskills.com/blogs/bobb/watch-the-sqlnotificationinfo-for-query-notifications/

sql-server sql-server-2008
  • 1 respostas
  • 3156 Views
Martin Hope
reticentKoala
Asked: 2012-12-15 07:20:09 +0800 CST

Atualização de índice não clusterizada não exibida no plano de execução [duplicado]

  • 4
Esta pergunta já tem respostas aqui :
Fechado há 9 anos .

Possível Duplicação:
Inserção de Índice Não Clusterizado

Estou tentando calcular o custo de ter um índice não clusterizado em uma tabela específica, mas não vejo nenhum custo de manutenção no plano de execução de uma inserção.

A tabela fica assim:

    CREATE TABLE [dbo].[ASPStateTempSessions](
    [SessionId] [nvarchar](88) NOT NULL,
    [Created] [datetime] NOT NULL,
    [Expires] [datetime] NOT NULL,
    [LockDate] [datetime] NOT NULL,
    [LockDateLocal] [datetime] NOT NULL,
    [LockCookie] [int] NOT NULL,
    [Timeout] [int] NOT NULL,
    [Locked] [bit] NOT NULL,
    [SessionItemShort] [varbinary](7000) NULL,
    [SessionItemLong] [image] NULL,
    [Flags] [int] NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [SessionId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[ASPStateTempSessions] ADD  DEFAULT (getutcdate()) FOR [Created]
GO

ALTER TABLE [dbo].[ASPStateTempSessions] ADD  DEFAULT ((0)) FOR [Flags]
GO

Além de um índice Clustered em [SessionID], ele possui o seguinte índice não clusterizado

/****** Object:  Index [Index_Expires]    Script Date: 12/14/2012 10:13:58 ******/
CREATE NONCLUSTERED INDEX [Index_Expires] ON [dbo].[ASPStateTempSessions] 
(
    [Expires] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

Mas quando executo um plano de execução para o seguinte, que atualiza a coluna na qual há um índice não clusterizado:

UPDATE [ASPState].dbo.ASPStateTempSessions
            SET Expires = DATEADD(n, Timeout, GETUTCDATE())
            WHERE SessionId = '32gghltsuoesnvlzbehchp2m2014c0f1'
            RETURN 0 

Não vejo nenhuma menção de custo no plano de execução:

insira a descrição da imagem aqui

É normal não ver? Como posso calcular o custo desse índice em operações de gravação?

sql-server index
  • 1 respostas
  • 1423 Views
Martin Hope
reticentKoala
Asked: 2012-11-01 02:03:48 +0800 CST

Instalando o SSRS de 32 bits no Windows/IIS de 64 bits

  • 1

Eu herdei uma situação em que tenho o SQL Server 2005 Standard de 32 bits em execução no Windows Server 2008 R2 de 64 bits.

Quando vou instalar os componentes do SSRS, sou avisado de que "Falha ao localizar o registro da versão ASP.Net com o Microsoft Internet Information Services (IIS)".

No IIS 7 e superior, cada pool de aplicativos pode ser executado no modo de 32 bits. Se eu alterar todos os pools de aplicativos para o modo de 32 bits, isso resolverá o problema?

São as melhores soluções alternativas?

Desde já, obrigado.

sql-server-2005 ssrs
  • 1 respostas
  • 1923 Views
Martin Hope
reticentKoala
Asked: 2012-10-12 03:14:26 +0800 CST

Enumerar unidades disponíveis para o SQL Server

  • 4

Estou tentando descobrir uma maneira de listar as unidades das quais uma instância específica do SQL Server está "consciente" e entender o processo.

Posso executar o EXEC master..xp_fixeddrivesque me fornece uma lista de unidades, mas quando olho na GUI (por exemplo, bancos de dados | Restaurar banco de dados | Do dispositivo | Adicionar), a lista de unidades disponíveis é muito menor.

Por qual processo o servidor SQL se torna "consciente" de uma unidade e existe alguma maneira de determinar de forma problemática as unidades das quais ele está ciente?

Desde já, obrigado!

sql-server permissions
  • 2 respostas
  • 1428 Views
Martin Hope
reticentKoala
Asked: 2012-10-06 02:30:48 +0800 CST

Colete informações de desempenho em condição de alta CPU no SQL Server

  • 2

Eu tenho um cluster de servidor SQL que geralmente atinge 100% da CPU fora do horário de trabalho. Desejo reunir algumas informações para ajudar na solução de problemas quando a condição real estiver ocorrendo.

Estou pensando em coletar informações de sys.dm_exec_requests, por exemplo.

Pergunta: Como posso fazer com que essa coleta de informações ocorra com base na condição de utilização da CPU

Por Exemplo: Insira os resultados de sys.dm_exec_requests em uma tabela quando CPU > 95%

sugestões para qualquer outra coisa que eu deva reunir são muito bem-vindas!

Parece que posso fazer isso com alertas, mas preciso entender melhor os contadores, pois meu exemplo não dispara, apesar da CPU> 5%

USE [msdb]
GO
EXEC msdb.dbo.sp_update_alert @name=N'My Test CPU Alert', 
    @message_id=0, 
    @severity=0, 
    @enabled=1, 
    @delay_between_responses=0, 
    @include_event_description_in=0, 
    @database_name=N'', 
    @notification_message=N'', 
    @event_description_keyword=N'', 
    @performance_condition=N'Resource Pool Stats|CPU usage %|default|=|5', 
    @wmi_namespace=N'', 
    @wmi_query=N'', 
    @job_id=N'00000000-0000-0000-0000-000000000000'
GO    
sql-server monitoring
  • 1 respostas
  • 2769 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