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

Zikato's questions

Martin Hope
Zikato
Asked: 2023-09-08 17:55:42 +0800 CST

Posso alterar o proprietário do esquema CDC?

  • 9

Habilitei o Change Data Capture (CDC) em um banco de dados usandoexec sys.sp_cdc_enable_db

Isso cria um novo esquema cdc que pertence ao usuário cdc

select
    s.*
    , dp.name
from sys.schemas as s
join sys.database_principals as dp
    on dp.principal_id = s.principal_id

insira a descrição da imagem aqui

Como desejo aproveitar o encadeamento de propriedade e ler esse esquema usando um proc, posso alterar o proprietário para dbo ?

ALTER AUTHORIZATION ON SCHEMA::cdc TO dbo

Este comando funciona e muda o proprietário. Mas o CDC já está habilitado há algum tempo e estou preocupado em quebrar algo mais adiante.

security
  • 2 respostas
  • 116 Views
Martin Hope
Zikato
Asked: 2023-02-08 00:56:45 +0800 CST

Por que sys.fn_xe_file_target_read_file requer uma conversão explícita na coluna datetime2?

  • 14

De acordo com a documentação, a coluna retornada timestamp_utcdeve ser do tipo datetime2(7)

Mas quando eu consulto assim

SELECT 
    *
FROM sys.fn_xe_file_target_read_file('system_health*.xel', null, null, null)
WHERE timestamp_utc > dateadd(hour, -1, GETUTCDATE())

Não retorna nenhuma linha. Ele retorna as linhas somente quando eu adiciono um cast explícito para datetime2

SELECT 
    *
FROM sys.fn_xe_file_target_read_file('system_health*.xel', null, null, null)
WHERE cast(timestamp_utc as datetime2(7)) > dateadd(hour, -1, GETUTCDATE())

Que corresponde ao último exemplo na documentação (mesmo que nenhuma atenção seja dada a ele)

insira a descrição da imagem aqui

Por que é que?

sql-server
  • 1 respostas
  • 203 Views
Martin Hope
Zikato
Asked: 2022-08-04 01:52:28 +0800 CST

Localizando os nomes de objetos no banco de dados de recursos [duplicado]

  • 3
Essa pergunta já tem respostas aqui :
Localizando o banco de dados do sistema de recursos (3 respostas)
Fechado há 3 meses .

Estou olhando para a exibição sys.dm_exec_function_stats para encontrar estatísticas de função escalar. Essa exibição também inclui linhas de um banco de dados com um id 32767 , que descobri ser o banco de dados Resource .

Alguns desses IDs podem ser passados ​​para OBJECT_NAME()ou OBJECT_DEFINITION()funções de metadados, mas alguns IDs retornamNULL

SELECT SERVERPROPERTY('ResourceVersion')  AS 'ResourceVersion'
SELECT SERVERPROPERTY('ResourceLastUpdateDateTime') AS 'ResourceLastUpdateDateTime' 

SELECT 
    defs.database_id
    , defs.object_id
    , OBJECT_NAME(defs.object_id) AS objName
    , OBJECT_DEFINITION(defs.object_id) AS objDef
    , OBJECT_NAME(defs.object_id, defs.database_id) AS objNameDB
    , OBJECT_DEFINITION(defs.object_id, defs.database_id) AS objDefDB
FROM sys.dm_exec_function_stats AS defs
WHERE defs.database_id = 32767

insira a descrição da imagem aqui

Eu posso encontrar a fn_hadr_is_primary_replicafunção (object_id = -665919249) no sys.all_objectsou em sys.all_sql_modules, mas não o object_id = -706609674.

Existe alguma maneira de encontrar o nome do objeto ou a definição do -706609674?

sql-server sql-server-2019
  • 1 respostas
  • 63 Views
Martin Hope
Zikato
Asked: 2022-01-28 00:58:55 +0800 CST

Por que UPDATE FROM falha e MERGE funciona em uma exibição com um gatilho INSTEAD OF?

  • 5

Às vezes, para refatoração, uso uma View para abstrair as alterações e uso INSTEAD OFTriggers para imitar a funcionalidade anterior.

Eu encontrei o erro 414 (ou 415) no passado

UPDATE não é permitido porque a instrução atualiza a exibição "%.*ls" que participa de uma junção e tem um gatilho INSTEAD OF UPDATE.

Eu posso reescrever o UPDATE FROMpara uma MERGEdeclaração e isso funciona. Mas por que?

Encontrei essas referências, mas nenhuma delas responde o porquê.

https://stackoverflow.com/questions/3085036/update-is-not-allowed-because-the-statement-updates-view-table-name-which-part

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/87c173b0-8f87-4aa3-b861-d40f23803a43/views-and-instead-of-update-trigger-limitation-why?forum=transactsql

https://sqlserverfast.com/blog/hugo/2008/03/lets-deprecate-update-from/

sql-server trigger
  • 1 respostas
  • 244 Views
Martin Hope
Zikato
Asked: 2021-09-10 00:52:25 +0800 CST

Como verificar as configurações do Query Store no banco de dados do modelo?

  • 5

O Repositório de Consultas pode ser habilitado no banco de dados modelo e garante que cada novo banco de dados tenha as mesmas configurações do banco de dados modelo .

A opção GUI está ausente

Opção de armazenamento de consultas ausente na GUI

Mas pode ser habilitado usando TSQL

ALTER DATABASE model
SET QUERY_STORE = ON (OPERATION_MODE = READ_WRITE);

Como não há GUI, não posso verificar as configurações padrão lá.

Usando TSQL novamente

USE model;
select * from sys.database_query_store_options;

Retorna resultado vazio

Resultado vazio das configurações do repositório de consultas do banco de dados modelo

Quando crio um novo banco de dados (que usa o modelo como template e consulta as configurações, ele me mostra o resultado)

create database TestQs;
go
use TestQs;
select * from sys.database_query_store_options;

Opções de armazenamento de consultas para banco de dados TestQS

Além disso, as configurações devem ser salvas em algum lugar, pois quando altero as opções do Query Store , a alteração é propagada para novos bancos de dados

ALTER DATABASE model
SET QUERY_STORE (INTERVAL_LENGTH_MINUTES = 22);

Eu tentei usar o SMO para encontrar essas opções, mas sem sorte.

$SqlServer = New-Object Microsoft.SqlServer.Management.Smo.Server -ArgumentList 'localhost'
$sqlServer.Databases['TestQs'].QueryStoreOptions

O banco de dados TestQS retorna as opções

Mas a mesma consulta para o banco de dados modelo não produz nada

$SqlServer = New-Object Microsoft.SqlServer.Management.Smo.Server -ArgumentList 'localhost'
$sqlServer.Databases['model'].QueryStoreOptions

O modelo de banco de dados retorna opções vazias

Existe uma maneira de verificar as configurações do Query Store no banco de dados modelo sem criar um novo banco de dados e verificar lá?

sql-server sql-server-2019
  • 1 respostas
  • 164 Views
Martin Hope
Zikato
Asked: 2019-08-29 00:03:09 +0800 CST

Como recriar um índice com as mesmas configurações?

  • 4

Estou em uma situação em que quero adicionar outra coluna incluída a um índice existente, mas mantenho o restante das configurações (por exemplo, FILLFACTOR, ONLINE, SORT_IN_TEMPDB, etc.) iguais.

  • Não tenho a versão anterior no controle de origem
  • Eu não encontrei a maioria deles no sys.indexes DMV (FILLFACTOR está lá, mas não ONLINE)
  • Encontrar o índice no Pesquisador de Objetos e fazer o script dele preenche os valores padrão para a configuração ONLINE (e omite DATA_COMPRESSION)
  • Não encontrei o imóvel no DMF OBJECTPROPERTY
  • O sp_BlitzIndex de Brent Ozar também não fornece algumas dessas configurações avançadas
  • sp_helpindex me fornece as mesmas informações limitadas que sp_help sobre a tabela pai.
  • Não consigo testar se WITH (DROP_EXISTING = ON) recria o índice com as mesmas configurações, pois não consigo encontrar as configurações em nenhum lugar.

Alguma ideia?

index t-sql
  • 1 respostas
  • 130 Views
Martin Hope
Zikato
Asked: 2019-04-26 03:14:10 +0800 CST

Como descobrir se uma coluna é referenciada em uma coluna computada?

  • 6

Estou tentando redigitar colunas em massa. Isso significa primeiro descartar e recriar quaisquer restrições das quais fazem parte.

Encontrei colunas referenciadas por essas restrições

  • Chaves Estrangeiras,
  • Chaves Primárias,
  • Índices,
  • Verifique as restrições,
  • Regras,
  • Restrições padrão.

Mas não consigo encontrar colunas computadas.

Eu examinei INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE, mas não inclui colunas computadas.

Há também sys.computed_columnsque mostra a definição, mas não lista colunas de maneira pesquisável.

Existe algum outro lugar que eu possa olhar? Se o SQL Server puder descobrir a dependência, pensei que também seria capaz.

sql-server t-sql
  • 2 respostas
  • 754 Views
Martin Hope
Zikato
Asked: 2019-04-19 06:32:17 +0800 CST

Por que o SQL Optimizer não usa minha restrição?

  • 7

Eu quero criar uma tabela com uma NOT NULLcoluna bool.
Eu uso TINYINTcom CHECKrestrição BETWEEN 0 and 1. A restrição é nova e, portanto, confiável

Agora, eu esperaria que o otimizador de SQL agora saiba que esta coluna só pode ser 0 e 1, então, quando eu escrever a consulta col >= 2, verei Constant Scan no plano de execução real (como quando eu verificaria NULLouSELECT TOP (0)

Mas este não é o caso, opta pela tabela Scan. Eu também preciso ter índice nesta coluna?

No meu teste abaixo eu uso TINYINTcom CHECKrestrição. Tipo definido pelo usuário com base no TINYINTvinculado RULEe no bom e velho BIT.

GO
CREATE TYPE dbo.myBool 
FROM [INT] NOT NULL
GO

CREATE RULE dbo.R_Bool AS @value BETWEEN 0 AND 1
go

EXEC sys.sp_bindrule @rulename = N'R_Bool'
                   , @objname = N'myBool'
GO 


DROP TABLE IF EXISTS dbo.RuleTest
CREATE TABLE dbo.RuleTest
(
    Id INT NOT NULL IDENTITY(1,1) PRIMARY KEY CLUSTERED
    , oldSchoolBool TINYINT NOT NULL CHECK (oldSchoolBool BETWEEN 0 AND 1)
    , customBool dbo.myBool NOT NULL
    , myBit BIT NOT NULL
)

;WITH tally (n)
AS
(
    SELECT 
        ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
    FROM        (VALUES (0), (0), (0), (0), (0), (0), (0), (0), (0), (0))   AS a(n)
    CROSS JOIN  (VALUES (0), (0), (0), (0), (0), (0), (0), (0), (0), (0))   AS b(n)
    CROSS JOIN  (VALUES (0), (0), (0), (0), (0), (0), (0), (0), (0), (0))   AS c(n)

)
INSERT INTO dbo.RuleTest 
(oldSchoolBool, customBool, myBit)
SELECT
    ABS(CHECKSUM(NewId())) % 2 
    ,ABS(CHECKSUM(NewId())) % 2 
    ,ABS(CHECKSUM(NewId())) % 2 
FROM tally t

SET STATISTICS IO ON;

SELECT * FROM dbo.RuleTest rt
WHERE rt.oldSchoolBool IS NULL


SELECT * FROM dbo.RuleTest rt
WHERE rt.oldSchoolBool >=2 

go
SELECT * FROM dbo.RuleTest rt
WHERE rt.customBool >=2 
go
SELECT * FROM dbo.RuleTest rt
WHERE rt.myBit >= 2

SET STATISTICS IO OFF;

Eu vejo um Constant Scan para a verificação NULL e 3 table scans para o resto.

t-sql sql-server-2016
  • 1 respostas
  • 322 Views
Martin Hope
Zikato
Asked: 2019-01-11 00:42:04 +0800 CST

Capture o histograma de eventos estendidos apenas durante a janela de tempo

  • 1

Temos uma janela de tempo problemática durante a noite nos finais de semana. Desejo configurar várias sessões de eventos estendidos para capturar alguns dados e obter insights.

A maioria deles terá como alvo um arquivo, que posso ler mais tarde, mas meu problema é com o Histograma.

Posso configurar um trabalho para alterar a sessão XE para iniciar em um horário específico, mas não consigo interromper a sessão, pois excluiria os dados do Histograma da memória.

AFAIK Não consigo salvar os resultados do Histograma da memória para o disco enquanto ele está em execução.

Talvez haja uma maneira de capturar dados apenas no histograma se eu configurar um predicado de timestamp no evento real (não testei isso) e deixar a sessão XE ser executada durante o fim de semana e ler os resultados na segunda-feira.

Existe alguma outra maneira de capturar o resultado do Histograma apenas durante uma janela de tempo específica?

sql-server monitoring
  • 1 respostas
  • 75 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