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

JohnLBevan's questions

Martin Hope
JohnLBevan
Asked: 2018-11-22 02:46:18 +0800 CST

Algum mecanismo de cache é usado para colunas computadas não persistentes?

  • 1

O SQL Server armazena em cache o resultado de uma coluna computada não persistente para que possa ser reutilizada sem incorrer em custos de recálculo?

Contexto Adicional Sempre dei o conselho de que, se estiver usando colunas computadas, você deve usar a opção PERSISTED, a menos que esteja esperando uma frequência de inserção/atualização maior do que a frequência de leitura, ou se precisar de melhor desempenho em inserções/atualizações do que as leituras de os dados (ou seja, uma vez que o custo do cálculo deve ser incorrido em um ou outro, então a decisão é realmente onde você quer pagar esse custo).

Há também a consideração do armazenamento adicional para os dados computados, mas normalmente isso é bastante insignificante e barato, portanto, não é muito importante.

No entanto, eu queria verificar se meu conselho é totalmente preciso, já que o SQL pode ser mais inteligente ... consultas. O SQL pode ter um carimbo de data/hora no valor armazenado em cache e outro nos dados do registro subjacente para dizer se esse registro foi alterado desde que o valor calculado foi calculado para determinar se o valor armazenado em cache ainda é válido.

Existe algo assim em vigor / depende dos recursos disponíveis (por exemplo, memória) ou outros fatores (por exemplo, o valor em cache tem um TTL além do tempo de vida do processo)? Eu nunca li nada sugerindo que isso existe, mas ficaria surpreso se não houvesse alguma otimização acontecendo nos bastidores.

sql-server cache
  • 1 respostas
  • 404 Views
Martin Hope
JohnLBevan
Asked: 2018-08-26 01:39:04 +0800 CST

O que é a tabela persist_version_store?

  • 6

Qual é o propósito da tabela MS Enviado: sys.persistent_version_store?

Por que eu quero saber

Principalmente curiosidade, em parte porque pode estar relacionado a um problema esperando para nos morder...

Estamos executando uma instância SaaS do MS Dynamics 365 for Finance and Operations. Isso tem ferramentas muito limitadas para monitorar o desempenho. Enquanto tentava encontrar algo significativo, descobri que esta tabela tinha uma contagem de linhas insanamente alta (~ 75.000.000). Isso parece preocupante. É possível que isso seja bom, mas a MS o incluiu em suas ferramentas de análise, o que significa que isso eclipsa todas as outras informações no gráfico (já que possui uma escala linear), tornando o gráfico inútil. Quero entender o que é essa tabela para poder determinar se é algo a ser investigado, ou se é apenas um design ruim incluí-la nas ferramentas de monitoramento.

Por que não ler a documentação

Como é uma tabela MS, deve ser documentada em algum lugar. No entanto, pesquisar persist_version_store fornece 1 resultado e está em chinês. A pesquisa do Persistence Version Store funciona melhor; mas não está claro se é a mesma coisa / não há muita documentação sobre o que é; apenas como corrigir problemas em que atingiu seu tamanho máximo.

azure-sql-database system-tables
  • 2 respostas
  • 1080 Views
Martin Hope
JohnLBevan
Asked: 2016-10-05 07:11:16 +0800 CST

Encontrar sessões conectadas por IP

  • 4

Existe alguma maneira de ver em quais conexões de endereço estão se conectando?

Mais informações:

Eu encontrei repetidamente pessoas configurando strings de conexão usando IP em vez de nome DNS e com SQL2012 e superior, conectando-se a instâncias por nome de servidor sem incluir o nome da instância (ou seja, onde está na porta 1433). Eu gostaria de auditar isso para que, poucas horas depois de algo ter se conectado usando uma string de conexão não compatível, eu possa ser alertado e encontrar rapidamente o culpado e corrigir o problema; em vez de esperar por mudanças na infraestrutura (por exemplo, mudar para uma porta não padrão ou mudar para um host diferente em um IP diferente, mantendo a mesma entrada de DNS subjacente) para causar surpresas mais sérias como resultado de configurações não compatíveis .

sql-server sql-server-2008-r2
  • 3 respostas
  • 21885 Views
Martin Hope
JohnLBevan
Asked: 2016-02-24 08:05:58 +0800 CST

O que é Virtualização de Dados?

  • 5

Acabei de ser perguntado se nossa empresa deveria considerar Data Virtualizationnossos ambientes de teste. Os benefícios são dados como:

  • Triagem de dados confidenciais
  • Atualizações rápidas de dados em nossos ambientes de teste
  • Possíveis benefícios para cenários de DR e BI

No entanto, só encontrei informações de marketing; nada técnico. Pelo que pude perceber, existem 2 abordagens:

  • Uma camada de serviço sobre um banco de dados de produção que o abstrai do modelo de dados (provavelmente resultando em um modelo de dados diferente apresentado por essa nova camada).
  • Uma ferramenta para automatizar a restauração e posterior manipulação de dados que pode ser usada por usuários não técnicos e é mais rápida do que usar backups de banco de dados e scripts SQL.

Sem ver nenhuma informação técnica, isso me cheira a óleo de cobra; mas eu quero entendê-lo em vez de descartar de imediato.


Palavras-chave: [dados como serviço] [virtualização de dados] [virtualização de dados] [delphix] [denodo]

backup replication
  • 1 respostas
  • 540 Views
Martin Hope
JohnLBevan
Asked: 2015-11-13 05:46:31 +0800 CST

Maneira correta de parar o SQL Server (através da automação)

  • 4

Pergunta

  • É seguro iniciar e parar os serviços do SQL usando comandos Start-Servicee Stop-Servicecomandos do PowerShell?
  • Caso contrário, existe uma maneira recomendada de iniciar e interromper os serviços do SQL por meio da automação?

Informação adicional

Estamos no processo de criação de scripts para desativar nossos sistemas de forma limpa antes das janelas de manutenção e, em seguida, trazê-los de volta. Por limpo, quero dizer que ele interrompe os serviços do aplicativo e, em seguida, interrompe os serviços do banco de dados (ou seja, na ordem de dependência), definindo tudo como DESATIVADO, para que a equipe de infraestrutura possa aplicar atualizações do Windows / executar qualquer trabalho, reinicializando os servidores com segurança conforme necessário, antes de executar o scripts para restaurar o sistema na ordem correta (com reconhecimento de dependência).

Nosso DBA mencionou que a forma correta de parar os serviços é através do Configuration Manager do SQL; implicando que isso é diferente de apenas usar services.msc(ou para automação, stop-servicearquivos sc \\someServer stop someService.

  • A nota na parte superior deste artigo sugere algo semelhante: https://technet.microsoft.com/en-us/library/ms175516(v=sql.105).aspx
  • Este artigo aponta que o SQL Server Configuration Manager tem algumas vantagens para algumas funções: https://msdn.microsoft.com/en-us/library/ms174212.aspx

No entanto, não consegui encontrar nada explicitamente dizendo que é incorreto iniciar/interromper serviços pelos meios regulares ou que proteção/funcionalidade extra o SQL Configuration Manager fornece em relação a simplesmente iniciar e interromper serviços.

sql-server sql-server-2008-r2
  • 3 respostas
  • 3720 Views
Martin Hope
JohnLBevan
Asked: 2015-09-23 07:56:39 +0800 CST

Blocking SPID tem Zero Disk IO e Zero CPU Time

  • 1

Executar sp_who2 e seguir a trilha BlkBy até a causa raiz do bloqueio retorna um SPID com valores CPUTime e DiskIO de 0; ainda está bloqueando 4 outros SPIDs.

Estou confuso sobre como isso é possível; o CPUTime em particular parece estranho, pois para obter um bloqueio você teria que gastar algum tempo solicitando recursos / solicitando o próprio bloqueio.
CPUTime está em milissegundos, portanto, embora seja possível que a solicitação e o bloqueio de recursos ocorram rápido o suficiente para ter um valor arredondado aqui, isso é um pouco surpreendente.

Além disso, esses SPIDS às vezes têm alguns minutos; ainda parecem não ter feito nada além do bloqueio de causa.

Pergunta

Como é possível que um SPID cause bloqueio com tempo de CPU zero?

Estou perguntando porque suspeito que algo está faltando em minha compreensão da estatística de tempo da CPU. Se alguém puder aconselhar sobre medidas sensatas para ajudar na investigação de tais questões, isso também seria útil.

sql-server blocking
  • 1 respostas
  • 337 Views
Martin Hope
JohnLBevan
Asked: 2014-07-23 10:43:28 +0800 CST

Desempenho da verificação de dados em tabelas relacionadas

  • 1

NB: esta questão é puramente acadêmica / para ajudar a melhorar minha compreensão do desempenho do SQL Server.

Dada uma tabela mestre relacionada a uma ou mais outras tabelas, como você determinaria a melhor abordagem para consultar essa tabela mestre em busca de registros, que incluem um indicador para a presença de registros nas tabelas relacionadas?

Por exemplo, digamos que temos uma tabela Pessoa e desejamos obter uma lista de todas as pessoas junto com um indicador de se elas têm filhos (neste exemplo, Pessoa pode ser reutilizada como a tabela relacionada):

create table Person
(
    Id bigint not null constraint pk_Person primary key clustered
    , ParentId bigint null constraint fk_Person_Parent foreign key references Person(Id)
    , FirstName nvarchar(256) not null
    , LastName nvarchar(256) not null
)

Poderíamos executar qualquer uma das consultas abaixo para verificar a presença de filhos relacionados:

--variables for restricting our result set, just to keep things interesting
declare @LastName nvarchar(256) = 'Be%'
, @FirstName nvarchar(256) = null

Exemplo 1

--  fairly straight forward, but requires grouping to account for the 
--  potential of a parent having multiple kids (which I don't care about here)
--  which could be adding some inefficiency.
select parent.Id
, parent.FirstName
, parent.LastName
, case when max(child.Id) is null then 0 else 1 end HasChildren
from Person parent
left outer join Person child --1:n
on child.ParentId = parent.Id
where (@LastName is null or parent.LastName like @LastName)
and (@FirstName is null or parent.FirstName like @FirstName)
group by parent.Id, parent.FirstName, parent.LastName --resolve 1:n

exemplo 2

--  avoid the need to group the results by first getting 
--  a single child per parent.
--  may be inefficient because we get children for all parents
--  even if we filter for only a few parents.
select parent.Id
, parent.FirstName
, parent.LastName 
, coalesce(child.hasChildren, 0) HasChildren
from Person parent
left outer join --1:? (0 or 1)
(
    select distinct parentId, 1 hasChildren
    from Person 
    where parentId is not null --not sure if this adds value
) child 
on child.ParentId = parent.Id
where (@LastName is null or LastName like @LastName)
and (@FirstName is null or FirstName like @FirstName)
--group by removed since we're 1:?

exemplo 3

--  same as #2 except we limit the child results to those 
--  related to the parents we're interested in / having stored
--  them in a CTE to avoid querying for the same parent data 
--  in the inner query and outer query.
--  Getting a bit silly now, but could overcome some inefficienies?
;with parentCTE as (
    select Id, FirstName, LastName 
    from person 
    where (@LastName is null or LastName like @LastName)
    and (@FirstName is null or FirstName like @FirstName)
)
select parentCTE.Id
, parentCTE.FirstName
, parentCTE.LastName 
, coalesce(child.hasChildren, 0) HasChildren
from parentCTE
left outer join --1:? (0 or 1)
(
    select distinct parentId, 1 hasChildren
    from Person 
    where parentId in --reduce the amount of data we return here based on the records we're interested in
    (
        select Id
        from parentCTE
    )
) child 
on child.ParentId = parentCTE.Id

exemplo 4

--  back to a simple one; just check for children on our parents 
--  but this time having brought back the full parent set.
--  may be inefficient because we're querying the table once per 
--  matching parent to check for children.
select parent.Id
, parent.FirstName
, parent.LastName
, coalesce((select top 1 1 from Person child where child.parentId = parent.Id),0) HasChildren
from Person parent
where (@LastName is null or LastName like @LastName)
and (@FirstName is null or FirstName like @FirstName)

Estou atrás de informações sobre como entender melhor as compensações envolvidas em tais situações, em vez de um simples example 3melhor. Indicações para artigos que possam me ajudar a entender também seriam bem-vindas.

SQL Fiddle relacionado: http://sqlfiddle.com/#!6/edc17/3

sql-server performance
  • 1 respostas
  • 550 Views
Martin Hope
JohnLBevan
Asked: 2012-10-20 14:24:20 +0800 CST

O comprimento dos dados LOB (%1) a serem replicados excede o máximo configurado %2

  • 1

Recentemente, encontramos esse erro logo após habilitar a replicação em uma tabela.

Length of LOB data (%1) to be replicated exceeds configured maximum %2

Já encontrei soluções para este problema:

  • https://stackoverflow.com/questions/925824/when-insert-length-of-lob-data-to-be-replicated-exceeds-configured-maximum-65536
  • http://sqlmusings.wordpress.com/2008/09/22/issue-length-of-lob-data-to-be-replicated-exceeds-configured-maximum-65536/

No entanto, não há nenhuma explicação de para que essa configuração estava lá em primeiro lugar. Se desativarmos o limite de tamanho do LOB, que efeitos colaterais isso terá - estamos nos abrindo para mais problemas no futuro?

Desde já, obrigado.

sql-server replication
  • 1 respostas
  • 2108 Views
Martin Hope
JohnLBevan
Asked: 2012-08-14 04:04:56 +0800 CST

Replicação do SQL Server :: Requisitos de Hardware do Distribuidor Dedicado

  • 4

Alguém conhece alguma regra prática (ou melhor) com relação aos requisitos de hardware para um servidor distribuidor dedicado? ou seja, com base nas métricas estimadas (por exemplo, número de assinantes, editores, tabelas, tamanho médio da tabela, frequência média de atualização etc.), existe alguma maneira de calcular um requisito mínimo de RAM/CPU para o distribuidor?

Mais informações

Provavelmente usaremos o SQL Server 2012 para o distribuidor, embora os editores e assinantes sejam atualmente uma mistura de 2008 e 2008 R2.

O distribuidor será agrupado para garantir alta disponibilidade. Iremos para ativo/ativo para otimizar o uso dos recursos, enviando metade dos editores para um e metade para o outro, mas garantiremos que cada nó na especificação do cluster satisfaça a especificação mínima para que, caso um nó seja desativado, a solução ainda pode lidar.

Informações de fundo

Temos usado a replicação para permitir que nosso sistema internacional de BI extraia dados de nossos sistemas transacionais sem afetar o desempenho, com os servidores de BI hospedando o distribuidor. No futuro, esperamos mover essa distribuição para um servidor separado, para que possamos fornecer replicação como um serviço para a equipe de BI e para outras equipes que precisam disso (ou seja, equipes locais de BI de vários países e nosso sistema de monitoramento interno). Esperamos ver um aumento no número de tabelas sendo replicadas, bem como no número de assinantes e editores (já que também incluiremos nossos sistemas de não produção).

Desde já, obrigado.

sql-server replication
  • 1 respostas
  • 1996 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