Pesquisei, mas não consegui encontrar uma lista de códigos e descrições disponíveis ao usar o arquivo configuration.ini.
Alguém pode me ligar alguma informação?
Pesquisei, mas não consegui encontrar uma lista de códigos e descrições disponíveis ao usar o arquivo configuration.ini.
Alguém pode me ligar alguma informação?
Tenho tentado alterar o número da porta de um cluster SQL 2012 com pouco sucesso. Eu pensei que poderia fazer isso da mesma maneira normal por meio do gerenciador de configuração, no entanto, mesmo com os serviços inativos no cluster e alterando a porta em ambos os nós, o número da porta antiga permanece.
Comecei a ler sobre a necessidade de remover e adicionar pontos de verificação para o cluster, mas não consegui encontrar nada relacionado ao SQL 2012.
Estou assumindo que preciso usar os comandos do PowerShell Remove-ClusterCheckpoint
e , para Add-ClusterCheckpoint
ser honesto, não estou claro quais parâmetros devo usar.
Alguém já fez isso para o SQL 2012 no Windows 2012 R2?
Ao alterar um banco de dados para parcialmente contido, recebo o seguinte erro:
Não é possível resolver o conflito de agrupamento entre "Latin1_General_CI_AS" e "Latin1_General_100_CI_AS_KS_WS_SC" na operação EXCEPT.
Foram encontrados erros no procedimento 'RSExecRole.DeleteExtensionModuleDDL' durante a compilação do objeto >. A opção de contenção do banco de dados 'VeeamOne' foi alterada ou este objeto estava presente no modelo db e o usuário tentou criar um novo banco de dados contido. Falha na instrução ALTER DATABASE. A opção de contenção do banco de dados 'VeeamOne' não pôde ser alterada porque foram encontrados erros de compilação durante a validação dos módulos SQL. Veja os erros anteriores. Falha na instrução ALTER DATABASE. (Provedor de Dados .Net SqlClient)
Acho que o objeto que está relatando é do SSRS. No entanto, o banco de dados no qual estou alterando o agrupamento é um aplicativo completamente separado.
Alguém tem alguma sugestão de como resolver isso?
==================================================== ======================= OK, este é o código para o proc, não tenho certeza do que faz com que ele não seja capaz de ser contido
USE [VeeamOne]
GO
/****** Object: StoredProcedure [reporter].[DeleteExtensionModuleDDL] Script Date: 02/12/2015 12:06:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [reporter].[DeleteExtensionModuleDDL]
@EMID int
AS
BEGIN
SET NOCOUNT ON;
declare @Debug bit;
set @Debug = 0;
declare @Emulate bit;
set @Emulate = 0;
declare @reportPackDestructorFunctionName nvarchar(max)
exec @reportPackDestructorFunctionName = [reporter].GenerateExtensionModuleDestructorName @EMID
if exists(select * from sys.objects where (object_id = OBJECT_ID(@reportPackDestructorFunctionName) and type in (N'P', N'PC')))
begin
exec @reportPackDestructorFunctionName
declare @objectsToDelete as table (Name nvarchar(2048), Type nvarchar(2048))
insert @objectsToDelete exec @reportPackDestructorFunctionName
if @Debug = 1
begin
select * from @objectsToDelete
end
declare @TablesToDelete as table(ObjectID int, Name varchar(max))
declare @FunctionsToDelete as Table(Name nvarchar(max))
declare @StoredProceduresToDelete as Table(Name nvarchar(max))
declare @AssembliesToDelete as Table(Name nvarchar(max))
declare @ViewsToDelete as Table(Name nvarchar(max))
insert into @TablesToDelete
select object_id(Name), Name
from @objectsToDelete
where Type = 'Table'
insert into @FunctionsToDelete
select Name
from @objectsToDelete
where Type = 'Function'
insert into @StoredProceduresToDelete
select Name
from @objectsToDelete
where Type = 'Procedure'
union
select @reportPackDestructorFunctionName
insert into @AssembliesToDelete
select Name
from @objectsToDelete
where Type = 'Assembly'
insert into @ViewsToDelete
select Name
from @objectsToDelete
where Type = 'View'
declare @DependencyTree as Table(ForeignKeyObjectID int, ForeignKeyObjectName nvarchar(max),
ParentTableID int, ParentTableName nvarchar(max),
ChildTableID int, ChildTableName nvarchar(max), Generation int)
declare @Generation int;
set @Generation = 0;
insert into @DependencyTree
select distinct(fk.object_id) as ForeignKeyObjectID, fk.name as ForeignKeyObjectName,
fk.referenced_object_id as ParentTableID, parent.name as ParentTableName,
fk.parent_object_id as ChildTableID, child.name as ChildTableName, @Generation
from sys.foreign_keys as fk
inner join sys.objects as parent
on fk.referenced_object_id = parent.object_id
inner join sys.objects as child
on fk.parent_object_id = child.object_id
where fk.referenced_object_id in (select ObjectID from @TablesToDelete)
while @@ROWCOUNT > 0
begin
set @Generation = @Generation + 1
insert into @DependencyTree
select fk.object_id as ForeignKeyObjectID, fk.name as ForeignKeyObjectName,
fk.referenced_object_id as ParentTableID, parent.name as ParentTableName,
fk.parent_object_id as ChildTableID, child.name as ChildTableName, @Generation
from @DependencyTree dt
inner join sys.foreign_keys as fk
on fk.referenced_object_id = dt.ChildTableID
inner join sys.objects as parent
on fk.referenced_object_id = parent.object_id
inner join sys.objects as child
on fk.parent_object_id = child.object_id
except
select ForeignKeyObjectID, ForeignKeyObjectName,
ParentTableID, ParentTableName,
ChildTableID, ChildTableName, @Generation
from @DependencyTree
end
declare @clearScript as table(ID int primary key identity (0,1), ScriptText nvarchar(max))
insert into @clearScript
select 'alter table [reporter].[' + ChildTableName +
'] drop constraint [' + ForeignKeyObjectName + ']'
from @DependencyTree
where ParentTableName in (select Name from @TablesToDelete)
insert into @clearScript
select 'drop table [reporter].[' + Name + ']' from @TablesToDelete
insert into @clearScript
select 'drop function [reporter].[' + Name + ']'
from @FunctionsToDelete
insert into @clearScript
select 'drop procedure [reporter].[' + Name + ']'
from @StoredProceduresToDelete
insert into @clearScript
select 'drop assembly [reporter].[' + Name + ']'
from @AssembliesToDelete
insert into @clearScript
select 'drop view [reporter].[' + Name + ']'
from @ViewsToDelete
if @Debug = 1
begin
select * from @clearScript
end
declare @str nvarchar(max)
declare @ID int;
set @ID = 0;
declare @MaxID int
select @MaxID = MAX(ID) from @clearScript
print ''
while @ID <= @MaxID
begin
select @str = ScriptText from @clearScript where ID = @ID
if @Emulate = 1
print(@str)
else
exec sp_executesql @statement = @str
set @ID = @ID + 1
end
end
END
Tenho as seguintes dúvidas:
SELECT *
FROM OPENQUERY([SERVERA],
'SELECT ''SERVERA'',[PhoneNum]
,[PhoneExt]
,COUNT(2) as CNT
FROM [DB].[dbo].[ResourcePhone] WHERE PhoneNum like ''+44%''
OR PhoneNum like ''+41%''
GROUP BY PhoneNum, PhoneExt
HAVING COUNT(2) > 1;')
UNION ALL
SELECT *
FROM OPENQUERY([SERVERB],
'SELECT ''SERVERA'',[PhoneNum]
,[PhoneExt]
,COUNT(2) as CNT
FROM [DB].[dbo].[ResourcePhone] WHERE PhoneNum like ''+44%''
OR PhoneNum like ''+41%''
GROUP BY PhoneNum, PhoneExt
HAVING COUNT(2) > 1;')
Estou recebendo o erro A conversão implícita do valor varchar em varchar não pode ser executada porque o agrupamento do valor não foi resolvido devido a um conflito de agrupamento entre "Latin1_General_CI_AS" e "SQL_Latin1_General_CP1_CI_AS" no operador UNION ALL.
Eu verifiquei o agrupamento das colunas e banco de dados envolvidos e eles são todos arquivos Latin1_General_BIN
. A diferença é SERVERA
tem um agrupamento de SQL_Latin1_General_CP1_CI_AS
e SERVERB
tem um agrupamento de Latin1_General_CI_AS
. Eu tentei adicionar COLLATE SQL_Latin1_General_CP1_CI_AS
aos nomes das colunas, mas isso não funcionou.
Alguém pode aconselhar como resolver isso?
Consulta exata adicionada
SELECT *
FROM OPENQUERY([SERVERA],
'SELECT ''SERVERA'',resourcephone.[PhoneNum]
,resourcephone.[PhoneExt]
,COUNT(2) as CNT
FROM [rtc].[dbo].[ResourcePhone] WHERE PhoneNum like ''+44%''
OR PhoneNum like ''+41%''
GROUP BY PhoneNum, PhoneExt
HAVING COUNT(2) > 1;')
UNION ALL
SELECT *
FROM OPENQUERY([SERVERB],
'SELECT ''SERVERB'' COLLATE Latin1_General_CI_AS, resourcephone.[PhoneNum] COLLATE Latin1_General_CI_AS
,resourcephone.[PhoneExt] COLLATE Latin1_General_CI_AS
,COUNT(2) as CNT
FROM [rtc].[dbo].[ResourcePhone] WHERE PhoneNum like ''+44%''
OR PhoneNum like ''+41%''
GROUP BY PhoneNum, PhoneExt
HAVING COUNT(2) > 1;')
Esta consulta dá a seguinte mensagem:
Msg 457, Nível 16, Estado 1, Linha 1 A conversão implícita do valor varchar em varchar não pode ser executada porque a collation do valor não foi resolvida devido a um conflito de collation entre "Latin1_General_CI_AS" e "Latin1_General_BIN" no operador UNION ALL.
Eu tenho uma conta SQL sem permissões além de ter a função pública. Eu executei o seguinte comando para negar permissões para as exibições do sistema:
use master
DENY VIEW ANY DEFINITION TO public;
No entanto, quando eu consulto a visualização sys.databases
, ainda recebo os metadados retornados. Meu entendimento foi que esse não deveria ser o caso?
Estamos enfrentando problemas ao criar um banco de dados na GUI do SSMS, pois às vezes ele atinge o tempo limite reclamando que não foi possível obter um bloqueio exclusivo no banco de dados do modelo. Outras vezes, o banco de dados é criado, mas parece estar demorando muito.
Também adicionei a conta de serviço à política de segurança local Executar manutenção de volume.
Este é um novo servidor SQL em cluster sem nenhum outro processo em execução no momento.
Eu consultei os tipos de espera e o maior é LCK_M_S
Eu perguntei sys.dm_tran_locks
durante o tempo em que ele é criado e posso ver dois bloqueios
Isso está correto, alguém tem algum conselho sobre por que a criação do banco de dados pode estar demorando tanto?
Mesmos problemas ao usar o código, sendo os seguintes:
CREATE DATABASE [TestTom]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'TestTom', FILENAME = N'G:\MSSQL11.MSSQLSERVER\MSSQL\DATA\TestTom.mdf' , SIZE = 1048576KB , FILEGROWTH = 1048576KB )
LOG ON
( NAME = N'TestTom_log', FILENAME = N'F:\MSSQL11.MSSQLSERVER\MSSQL\Data\TestTom_log.ldf' , SIZE = 1048576KB , FILEGROWTH = 1048576KB )
GO
ALTER DATABASE [TestTom] SET COMPATIBILITY_LEVEL = 110
GO
ALTER DATABASE [TestTom] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [TestTom] SET ANSI_NULLS OFF
GO
ALTER DATABASE [TestTom] SET ANSI_PADDING OFF
GO
ALTER DATABASE [TestTom] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [TestTom] SET ARITHABORT OFF
GO
ALTER DATABASE [TestTom] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [TestTom] SET AUTO_CREATE_STATISTICS ON
GO
ALTER DATABASE [TestTom] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [TestTom] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [TestTom] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [TestTom] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [TestTom] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [TestTom] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [TestTom] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [TestTom] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [TestTom] SET DISABLE_BROKER
GO
ALTER DATABASE [TestTom] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [TestTom] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [TestTom] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [TestTom] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [TestTom] SET READ_WRITE
GO
ALTER DATABASE [TestTom] SET RECOVERY SIMPLE
GO
ALTER DATABASE [TestTom] SET MULTI_USER
GO
ALTER DATABASE [TestTom] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [TestTom] SET TARGET_RECOVERY_TIME = 0 SECONDS
GO
USE [TestTom]
GO
IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name = N'PRIMARY') ALTER DATABASE [TestTom] MODIFY FILEGROUP [PRIMARY] DEFAULT
GO
Tenho movido alguns bancos de dados do SQL 2008 para o SQL 2012 usando o método desanexar e anexar. Eu mapeio corretamente todos os arquivos e os nomes físicos e lógicos aparecem corretamente nas propriedades do banco de dados.
No entanto, se eu executar sys.master_files, posso ver que todos os meus arquivos receberam o mesmo nome de arquivo na coluna Nome do DMV e isso está deixando nosso sistema de alerta enlouquecido.
Alguém já viu isso antes ou sabe como posso consertar?
Obrigado
Temos um novo servidor que também estamos migrando e queremos ver os benefícios potenciais do hardware. Portanto, a ideia é capturar uma carga de trabalho e reproduzi-la em nossa nova caixa.
Minha pergunta é, no entanto, em relação a ver os benefícios de desempenho. Estarei executando alguns contadores de desempenho, mas, idealmente, queremos ver o quanto as consultas individuais são mais rápidas.
Eu terei essas informações na captura inicial da carga de trabalho, no entanto, quando eu reproduzir isso em meu novo servidor, preciso simultaneamente executar um rastreamento para capturar as novas informações da carga de trabalho também. Com efeito, executando o SQL Profiler duas vezes ao mesmo tempo para reproduzir e capturar?
Atualmente, tenho falhas de página/s com média de 1269, enquanto minhas leituras de página/s têm uma média de 0,3.
Estou apenas tentando interpretar o que isso significa. Presumo que estou recebendo muitas falhas de página suaves neste caso e o problema que o usuário está enfrentando com lentidão é devido ao aplicativo ter que esperar que as páginas fiquem livres na memória?
Em qual caso devo rastrear bloqueios e bloqueios?
Eu estava executando a consulta neste artigo:
http://sqlity.net/en/708/why-cxpacket-waits-are-not-your-performance-problem/
Para ver o que meus threads estavam esperando em relação a uma consulta suspensa com um tipo de espera de CXPACKET.
No entanto, para o SPID em questão, os threads em execução estavam mostrando tipos de espera de NULL com todos os outros threads em um estado SUSPENDED com um tipo de espera de CXPACKET.
Eu esperava que um dos threads tivesse algum tipo de espera diferente de CXPACKET, alguém pode me explicar o que está acontecendo nessa situação?
Obrigado
Como o erro sugere, o log SQL está sendo preenchido com o erro:
Login failed for user 'xxx\xxx$'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: xxx.xxx.xxx.xxx]
Este é um cluster SQL e a conta que está tentando fazer login é a conta do nó passivo. A conta não existe no próprio SQL, então não acho que seja uma incompatibilidade de SID.
Eu verifiquei os DMVs do buffer de anel que coloquei abaixo, mas não acho que isso esteja me dando muito.
runtime Notification_Time ErrorCode CallingAPIName APIName SPID Record Id Type Record Time Current Time
2014-10-24 10:22:50.953 2014-10-23 15:38:24.547 0x139F NLShimImpersonate ImpersonateSecurityContext 62 18610 RING_BUFFER_SECURITY_ERROR 10966336138 11033802544
Eu verifiquei e o IIS não está no nó passivo, então não há salto duplo vindo de lá, e nos serviços não consigo ver nada óbvio sobre o que poderia estar causando isso. O navegador SQL está definido como serviço local, isso pode estar tentando fazer login?
Nossa solução de monitoramento (SCOM) está sinalizando que o log tempdb está ficando sem espaço. No entanto, temos o crescimento automático definido para pedaços de 1 GB para o log e temos 25 GB de espaço na unidade.
Eu olhei para o que log_reuse_wait_desc
era e descobri que eraACTIVE_TRANSACTION
Comecei a me perguntar se, por algum motivo, o arquivo de log estava sendo preenchido e o crescimento automático não estava funcionando, e depois de algumas pesquisas descobri que o arquivo de log ainda deveria crescer mesmo durante um ACTIVE_TRANSACTION
.
Encontrei um artigo sobre problemas semelhantes em que o log do tempdb ficou sem espaço:
Aqui eles emitiram um CHECKPOINT
para resolver o problema em tempdb
. Eu sei que um CHECKPOINT
libera páginas sujas para o disco, mas não entendo como isso resolveria o ACTIVE_TRANSACTION
problema?
Além disso, também não sei por que recebemos esse alerta quando há muito espaço. Existe uma situação em que o tempdb
preenchimento e o crescimento automático não funcionam por algum motivo?
Atualmente, temos um log de transações que está crescendo de forma incremental e possui muitos arquivos VLF. Vou seguir um processo de redução e, em seguida, aumentar novamente o arquivo de log para um tamanho adequado para aliviar esse problema.
Minha pergunta é que o encolhimento reduzirá apenas do final do arquivo até a última parte ativa do log. Portanto, devo mudar para recuperação simples primeiro e depois realizar a redução?
Em seguida, voltarei a executar um backup completo para iniciar a cadeia de backup novamente.
Eu extraí um plano de execução do cache do plano e do XML extraí os valores compilados. Em seguida, executei a consulta no SSMS usando os valores compilados e os planos de consulta são diferentes, embora sejam executados no mesmo banco de dados.
Alguém pode explicar por que isso ocorreu?
Mesmo lendo o blog de Bart Duncan sobre a leitura de impasses, ainda luto com isso. Incluí o XML de um impasse específico.
<?xml version="1.0" encoding="utf-8" ?>
- <deadlock>
- <victim-list>
<victimProcess id="process2fea928" />
</victim-list>
- <process-list>
- <process XDES="0x64e18e3a8" clientapp=".Net SqlClient Data Provider+TransactionalSqlSession" clientoption1="673316896" clientoption2="128056" currentdb="12" ecid="0" hostname="APPSVM7" hostpid="3208" id="process2fea928" isolationlevel="read uncommitted (1)" kpid="11776" lastattention="1900-01-01T00:00:00.240" lastbatchcompleted="2014-07-25T00:00:41.240" lastbatchstarted="2014-07-25T00:00:41.240" lasttranstarted="2014-07-25T00:00:41.230" lockMode="X" lockTimeout="4294967295" loginname="NTSERVERS\AX2012WEBPROD" logused="0" ownerId="9934810052" priority="0" sbid="0" schedulerid="16" spid="148" status="suspended" taskpriority="0" trancount="2" transactionname="MgdSqlSessionTran" waitresource="OBJECT: 12:277576027:10" waittime="4440" xactid="9934810052">
- <executionStack>
<frame line="25" procname="Search_Service_Application_CrawlStoreDB_3a7fefdbc44a48ef902a65ffb71c7d3a.dbo.proc_MSS_GetNextCrawlBatch" sqlhandle="0x03000c004f6ab01d5de1f8008ca2000001000000000000000000000000000000000000000000000000000000" stmtend="3504" stmtstart="3362">INSERT INTO MSSBatchHistory WITH(TABLOCKX)(CrawlID) VALUES (@CrawlID)</frame>
</executionStack>
<inputbuf>Proc [Database Id = 12 Object Id = 498100815]</inputbuf>
</process>
- <process XDES="0x4212ea3a8" clientapp="SharePoint[OWSTIMER][1][Search_Service_Application_CrawlStoreDB_3a7fefdbc44a48ef902a65ffb71c7d3a]" clientoption1="673185824" clientoption2="128056" currentdb="12" ecid="0" hostname="APPSVM7" hostpid="9480" id="process403a188" isolationlevel="read committed (2)" kpid="14060" lastattention="1900-01-01T00:00:00.360" lastbatchcompleted="2014-07-25T00:00:40.360" lastbatchstarted="2014-07-25T00:00:40.360" lasttranstarted="2014-07-25T00:00:40.387" lockMode="Sch-M" lockTimeout="4294967295" loginname="NTSERVERS\AX2012WEBPROD" logused="168" ownerId="9934809243" priority="0" sbid="0" schedulerid="11" spid="170" status="suspended" taskpriority="-10" trancount="1" transactionname="ALTER INDEX" waitresource="OBJECT: 12:277576027:0" waittime="584" xactid="9934809243">
- <executionStack>
<frame line="1" procname="adhoc" sqlhandle="0x01000c00d14d6c19c006e5650400000000000000000000000000000000000000000000000000000000000000" stmtend="294" stmtstart="24">ALTER INDEX IX_MSSBatchHistory ON dbo.MSSBatchHistory REBUILD WITH (MAXDOP = 0, FILLFACTOR = 95, DATA_COMPRESSION = PAGE, ONLINE = ON)</frame>
<frame line="133" procname="Search_Service_Application_CrawlStoreDB_3a7fefdbc44a48ef902a65ffb71c7d3a.dbo.proc_MSS_DefragGathererIndexes" sqlhandle="0x03000c0018d2e62d8e07d6008ca2000001000000000000000000000000000000000000000000000000000000" stmtend="8816" stmtstart="8768">EXEC (@command)</frame>
</executionStack>
<inputbuf>Proc [Database Id = 12 Object Id = 770101784]</inputbuf>
</process>
</process-list>
- <resource-list>
- <objectlock associatedObjectId="277576027" dbid="12" id="lock4f20fdc00" lockPartition="10" mode="IS" objectname="Search_Service_Application_CrawlStoreDB_3a7fefdbc44a48ef902a65ffb71c7d3a.dbo.MSSBatchHistory" objid="277576027" subresource="FULL">
- <owner-list>
<owner id="process403a188" mode="IS" />
</owner-list>
- <waiter-list>
<waiter id="process2fea928" mode="X" requestType="wait" />
</waiter-list>
</objectlock>
- <objectlock associatedObjectId="277576027" dbid="12" id="lock4d7444c00" lockPartition="0" mode="X" objectname="Search_Service_Application_CrawlStoreDB_3a7fefdbc44a48ef902a65ffb71c7d3a.dbo.MSSBatchHistory" objid="277576027" subresource="FULL">
- <owner-list>
<owner id="process2fea928" mode="X" />
</owner-list>
- <waiter-list>
<waiter id="process403a188" mode="Sch-M" requestType="wait" />
</waiter-list>
</objectlock>
</resource-list>
</deadlock>
Parece que está ocorrendo o seguinte:
SPID 148 running the query (line 25 of proc Search_Service_Application_CrawlStoreDB_3a7fefdbc44a48ef902a65ffb71c7d3a.dbo.proc_MSS_GetNextCrawlBatch)
INSERT INTO MSSBatchHistory WITH(TABLOCKX)(CrawlID) VALUES (@CrawlID)
SPID170 running the query (line 1 of adhoc query)
INDEX IX_MSSBatchHistory ON dbo.MSSBatchHistory REBUILD WITH (MAXDOP = 0, FILLFACTOR = 95, DATA_COMPRESSION = PAGE, ONLINE = ON)
No entanto, no segundo operationStack há um segundo quadro, ou seja, este:
<frame line="133" procname="Search_Service_Application_CrawlStoreDB_3a7fefdbc44a48ef902a65ffb71c7d3a.dbo.proc_MSS_DefragGathererIndexes" sqlhandle="0x03000c0018d2e62d8e07d6008ca2000001000000000000000000000000000000000000000000000000000000" stmtend="8816" stmtstart="8768">EXEC (@command)</frame>
Como isso afeta o impasse? Este é outro processo que estava em execução no momento?
Obrigado
Atualmente, usamos uma ferramenta de monitoramento que nos mostra nossas principais estatísticas de espera por número de tarefas em espera ou tempo total de espera. Abaixo estão as estatísticas de espera por número de tarefas em espera e também o tempo de espera por tarefa.
Temos usuários reclamando de lentidão no sistema, mas as métricas do servidor parecem boas em termos de E/S de disco, memória e CPU. Alguém sabe se as esperas PREEMPTIVE são um problema?
Number of waiting tasks
SOS_SCHEDULER_YIELD
PAGELATCH_EX
PAGELATCH_SH
PREEMPTIVE_XE_CALLBACKEXECUTE
PREEMPTIVE_XE_GETTARGETSTATE
PREEMPTIVE_XE_SESSIONCOMMIT
Average wait per task
PAGEIOLATCH_SH
PREEMPTIVE_XE_GETTARGETSTATE
Atualização:
executei uma consulta de Paul Randal semelhante à que você postou e obtive o seguinte:
WaitType Wait_S Resource_S Signal_S WaitCount Percentage AvgWait_S AvgRes_S AvgSig_S
PREEMPTIVE_XE_GETTARGETSTATE 9704.81 9704.81 0.00 604647 44.60 0.0161 0.0161 0.0000
Eu sei que isso não combina muito bem, mas basicamente esse tipo de espera foi responsável por 44,60% de todos os tipos de espera. Além disso, como não houve esperas de sinal neste tipo, isso indica que não há pressão da CPU, mas sim uma espera em algum outro recurso. No entanto, não tenho certeza de como deduzo o que é esse recurso.
Também este é o SQL 2012 SP1
Update2 AS solicitado aqui são os resultados de sua consulta. Em relação aos eventos estendidos, as únicas sessões em execução são o padrão system_health e 2 do SharePoint que acabei de notar, eles devem ter sido colocados lá por padrão. Posso desligá-los. Será que eles estão causando algum problema?
É interessante que meu PREEMPTIVE_XE_GETTARGETSTATE não pareça estar nesta lista.
wait_type wait_time_ms signal_wait_time_ms resource_wait_time_ms percent_total_waits percent_total_signal_waits percent_total_resource_waits
SP_SERVER_DIAGNOSTICS_SLEEP 300014 355508314 0 24.621089361251698 99.883069863550302 0.000000000000000
MSQL_XP 96782 0 4268999 0.295653861591811 0.000000000000000 0.295653861591811
ASYNC_IO_COMPLETION 56193 64 345552 0.023935987107964 0.000017981341700 0.023931554722962
BACKUPTHREAD 41100 6850 265025 0.018828979257262 0.001924565478840 0.018354575549998
LCK_M_U 40500 71 41030 0.002846491499596 0.000019948050948 0.002841574322484
PWAIT_ALL_COMPONENTS_INITIALIZED 31422 0 94205 0.006524262955146 0.000000000000000 0.006524262955146
XE_LIVE_TARGET_TVF 28050 0 33458 0.002317167771915 0.000000000000000 0.002317167771915
LCK_M_X 4027 50 29195 0.002025392177944 0.000014047923203 0.002021929377161
SQLTRACE_INCREMENTAL_FLUSH_SLEEP 4018 613 355390660 24.612983567922965 0.000172227538471 24.612941113985366
CXPACKET 3756 1 14755 0.001021941767062 0.000000280958464 0.001021872511047
Temos um grupo de arquivos principal com vários arquivos, cada um em discos diferentes. Um dos discos está quase cheio e, como tal, tivemos que desativar o crescimento automático desse arquivo. Há algo que eu deva considerar ao fazer isso?
Não acredito que possa forçar uma tabela a estar em um arquivo específico quando todos estão no mesmo grupo de arquivos; portanto, do ponto de vista do administrador, não consegui pensar em nada.
Temos uma consulta que se beneficiaria de um índice de cobertura, mas uma das colunas que seria retornada é um tipo de dados NTEXT. Eu sei que isso não pode ser adicionado ao índice e também sei que seria bom converter a coluna para nvarchar (max), no entanto, como este é um aplicativo de terceiros (é o Microsoft Dynamics!), No momento não podemos fazer isso .
Os problemas parecem ser todas as leituras lógicas lob que estão sendo executadas como parte de uma pesquisa RID. Existe alguma maneira de acelerar isso?
alguém pode me explicar por que essa consulta retorna 0,000?
SELECT CAST(20/1024 AS NUMERIC(10,3))
Estou apenas tentando fazer uma conversão simples de MB para GB
Obrigado
Estou ciente do código fornecido pela Microsoft para transferir logins entre servidores SQL, porém isso só faz a conta e a senha.
E se essa conta específica tiver várias funções e permissões atribuídas a ela no nível do servidor, existe um código equivalente para criar o script dessas permissões também?
Obrigado