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 / dba / 问题

All perguntas(dba)

Martin Hope
J. Mini
Asked: 2023-08-13 20:12:28 +0800 CST

O PERCENTILE_CONT ainda oferece um desempenho terrível ao calcular medianas nas versões 2022 do SQL Server?

  • 7

Atualmente, estou lendo um livro do SQL Server 2014. Ele, como todas as outras fontes online que encontrei, informa que é PERCENTILE_CONTuma maneira muito lenta de calcular medianas e não mostra o plano de execução supostamente péssimo. Ainda é PERCENTILE_CONTextremamente lento nesta tarefa nas versões recentes (ou seja, 2022 ou posteriores) do SQL Server?

"Extremamente lento" é subjetivo, portanto, mostrar que os planos de execução não mudam entre o SQL Server 2014 e 2022 será suficiente. Eu mesmo verificaria isso, mas o servidor mais novo que tenho está na versão de 2012.

sql-server
  • 2 respostas
  • 401 Views
Martin Hope
hwhap
Asked: 2023-08-13 03:18:40 +0800 CST

É possível replicar um banco de dados SQL para um banco de dados com uma estrutura diferente?

  • 6

Existe uma instância mariaDB que já está em execução e possui dados em muitas tabelas. Deixe-me chamar esse banco de dados antigo. Digamos que a estrutura (tabelas e seus campos) não foi bem pensada e, portanto, leva à duplicação de dados em vários registros e a maioria das colunas está vazia em muitos registros. Além disso, os nomes das colunas não eram informativos - como col1, col2 e col3 em vez de nome, local e endereço. Como a instância mariaDB está em uso ativo, qualquer reestruturação envolverá a alteração de outros aplicativos que a utilizam. Então, gostaríamos de replicá-lo para uma estrutura diferente em uma instância diferente localizada em um local diferente, deixe-me chamar esse novo banco de dados. Dessa forma, todos os aplicativos implantados anteriormente ainda funcionam, mas há uma cópia estruturada melhor disponível.

À medida que os dados são adicionados ao banco de dados antigo, eles são replicados na nova estrutura ao vivo. Por exemplo, digamos que o banco de dados antigo tenha uma tabela funcionário como

create table employee (
  g1 int,
  g2 varchar(255),
  g3 varchar(255),
  g4 varchar(255),
  g5 date
);

No novo banco de dados, digamos que os mesmos dados sejam estruturados dividindo-os em duas tabelas:

create table employee_table (
  id int primary key,
  first_name varchar(255),
  last_name varchar(255),
  date_of_birth date
);

create table address_table (
  id int,
  address varchar(255),
  foreign key (id) references employee_table(id)
);

Neste cenário, digamos que queremos o seguinte mapeamento dos campos do funcionário no banco de dados antigo para os campos do novo banco de dados:

  • funcionário.g1 -> funcionário_tabela.id, endereço_tabela.id
  • empregado.g2 -> tabela_funcionário.nome_primeiro
  • empregado.g3 -> tabela_funcionário.último_nome
  • empregado.g4 -> endereço_tabela.endereço
  • empregado.g5 -> tabela_funcionário.data_de_nascimento

É possível fazer isso usando algum método de replicação disponível suportado por mariadb ou postgresql?

Entendo que é possível replicar para a mesma estrutura do banco de dados antigo, mas não consegui encontrar nada sobre replicar para uma estrutura diferente. O único método que consegui criar envolve escrever uma configuração json que mapeia cada campo no novo banco de dados para o banco de dados antigo, juntamente com as informações necessárias, como tipos, para que a conversão de tipo seja executada, se necessário. Um script python, por exemplo, pode usar isso como uma pesquisa para preencher o novo banco de dados do banco de dados antigo e esse script pode ser executado em intervalos regulares. A configuração também deve mencionar maneiras de sinalizar ou lidar com conflitos como eles são esperados devido à estrutura ruim do banco de dados antigo. Por exemplo, o mesmo funcionário pode ter dois data_of_birth diferentes no banco de dados antigo e isso deve ser tratado ou sinalizado durante a replicação.

Existe também a possibilidade de ter gatilhos para cada tabela na inserção, de modo que os dados inseridos no banco de dados antigo sejam refletidos na estrutura diferente do novo banco de dados. Os dados são sempre inseridos apenas no banco de dados antigo por meio de aplicativos já implantados. Em seguida, o novo banco de dados pode ser replicado usando a abordagem padrão para o outro local. Mas acho que isso não é bom, pois editar uma configuração json é mais fácil do que ir para cada tabela e modificar o gatilho caso sejam necessárias alterações.

Agradeceria sugestões sobre melhores abordagens para fazer esse tipo de replicação e ponteiros sobre métodos padrão para fazer isso.

postgresql
  • 1 respostas
  • 26 Views
Martin Hope
tbasallo
Asked: 2023-08-12 23:38:05 +0800 CST

A restrição DATE é ignorada na inserção

  • 5

Devo estar perdendo alguma coisa em algum lugar..

SQL do Azure

DispatchedOn is a DateTime column

ALTER TABLE [table] WITH CHECK ADD CONSTRAINT [CK_ReportDate6MonthRollGreater] CHECK  ((CONVERT([date],[DispatchedOn])>='2022-12-07'))
GO

ALTER TABLE [table] CHECK CONSTRAINT [CK_ReportDate6MonthRollGreater]
GO

Posso inserir uma data de 2022-12-01

insira a descrição da imagem aqui

sql-server
  • 2 respostas
  • 47 Views
Martin Hope
Ali Günay
Asked: 2023-08-12 22:14:46 +0800 CST

A saída de dar Query

  • 2
WITH NumberSequence AS
(
SELECT
1 AS Number1
, 2 AS Number2
UNION ALL
SELECT
Number2 * 2 + 1
, Number1 * 5
FROM NumberSequence
WHERE Number1 < 200
)
SELECT
*
FROM NumberSequence

Number1 Number2
   1       2
   5       5
   11      25
   51      55
   111     255
   511     555

Eu não entendo porque está dando essa saída. Por que simplesmente não multiplicamos Number1 por 5. Por que trocamos o processo entre os números. Alguém pode me explicar por favor.

query
  • 1 respostas
  • 25 Views
Martin Hope
epipko
Asked: 2023-08-12 01:02:09 +0800 CST

Oracle: como especificar um local de backup não padrão durante a restauração RMAN

  • 6
Esta questão foi migrada do Stack Overflow porque pode ser respondida no Stack Exchange dos Administradores de Banco de Dados. Migrado há 13 dias .

Oráculo 19c no Windows. Os backups agendados do RMAN vão para FRA aqui: D:\oracle\recovery. Tenho outro backup em D:\backup\ que desejo restaurar. Preciso ser capaz de "dizer" ao Rman para procurar um local não padrão. Aqui está o que tenho até agora:

shutdown immediate;
startup nomount;
show parameter control_files;
exit;
rman target /
restore controlfile from 'D:\BACKUP\';
alter database mount;

-- full recovery
run{
restore database;
recover database;
alter database open resetlogs;
}

Em que ponto eu especifico o local do backup e como?

oracle
  • 2 respostas
  • 30 Views
Martin Hope
kylejw2
Asked: 2023-08-12 05:28:23 +0800 CST

Por que o PostgreSQL Query Planner está escolhendo uma solução tão ineficiente?

  • 5

Estou trabalhando com postgres 13.9 no Amazon Aurora. Em nosso ambiente de produção, estamos executando uma consulta que leva mais de 15 segundos para ser executada quando a consulta está usando um pequeno arquivo LIMIT. Por exemplo, quando a consulta está sendo executada com LIMIT 1, vemos o seguinte resultado

Limit  (cost=1.54..2608.50 rows=1 width=1100) (actual time=17945.422..17945.424 rows=1 loops=1)
  Output: tasks.id, tasks.name, tasks.description, tasks.priority, tasks.estimated_hours, tasks.sort_order, tasks.estimated_points, tasks.responsibility, tasks.sign_off_required, tasks.created_at, tasks.updated_at, tasks.milestone_id, tasks.status, tasks.sign_off_user_id, tasks.assignee_id, tasks.creator_id, tasks.start_on, tasks.due_on, tasks.project_id, tasks.template_id, tasks.actual_hours, tasks.deleted_at, tasks.assignment_email_sent_at, tasks.stuck_message, tasks.overdue_pm_reminder_sent_at, tasks.duration, tasks.dependency_type, tasks.dependency_id, tasks.last_activity_at, tasks.completed_at, tasks.overdue_watched_tasks_email_sent_at, tasks.task_type, tasks.must_start_on, tasks.must_start_on_required, tasks.must_start_on_email_sent_at, tasks.visibility, tasks.type, tasks.related_task_id, tasks.action_items_count, tasks.open_action_items_count, tasks.billable_hours, tasks.non_billable_hours, tasks.jira_sync, tasks.public_id, tasks.event_details, tasks.blueprint_task_id, tasks.task_group_id
  ->  Merge Semi Join  (cost=1.54..60650907.42 rows=23265 width=1100) (actual time=17945.420..17945.422 rows=1 loops=1)
        Output: tasks.id, tasks.name, tasks.description, tasks.priority, tasks.estimated_hours, tasks.sort_order, tasks.estimated_points, tasks.responsibility, tasks.sign_off_required, tasks.created_at, tasks.updated_at, tasks.milestone_id, tasks.status, tasks.sign_off_user_id, tasks.assignee_id, tasks.creator_id, tasks.start_on, tasks.due_on, tasks.project_id, tasks.template_id, tasks.actual_hours, tasks.deleted_at, tasks.assignment_email_sent_at, tasks.stuck_message, tasks.overdue_pm_reminder_sent_at, tasks.duration, tasks.dependency_type, tasks.dependency_id, tasks.last_activity_at, tasks.completed_at, tasks.overdue_watched_tasks_email_sent_at, tasks.task_type, tasks.must_start_on, tasks.must_start_on_required, tasks.must_start_on_email_sent_at, tasks.visibility, tasks.type, tasks.related_task_id, tasks.action_items_count, tasks.open_action_items_count, tasks.billable_hours, tasks.non_billable_hours, tasks.jira_sync, tasks.public_id, tasks.event_details, tasks.blueprint_task_id, tasks.task_group_id
        Merge Cond: (tasks.id = t0.id)
        ->  Index Scan using tasks_pkey on public.tasks  (cost=0.56..14315808.88 rows=11401481 width=1100) (actual time=0.054..4908.126 rows=2722000 loops=1)
              Output: tasks.id, tasks.name, tasks.description, tasks.priority, tasks.estimated_hours, tasks.sort_order, tasks.estimated_points, tasks.responsibility, tasks.sign_off_required, tasks.created_at, tasks.updated_at, tasks.milestone_id, tasks.status, tasks.sign_off_user_id, tasks.assignee_id, tasks.creator_id, tasks.start_on, tasks.due_on, tasks.project_id, tasks.template_id, tasks.actual_hours, tasks.deleted_at, tasks.assignment_email_sent_at, tasks.stuck_message, tasks.overdue_pm_reminder_sent_at, tasks.duration, tasks.dependency_type, tasks.dependency_id, tasks.last_activity_at, tasks.completed_at, tasks.overdue_watched_tasks_email_sent_at, tasks.task_type, tasks.must_start_on, tasks.must_start_on_required, tasks.must_start_on_email_sent_at, tasks.visibility, tasks.type, tasks.related_task_id, tasks.action_items_count, tasks.open_action_items_count, tasks.billable_hours, tasks.non_billable_hours, tasks.jira_sync, tasks.public_id, tasks.event_details, tasks.blueprint_task_id, tasks.task_group_id
              Filter: ((tasks.deleted_at IS NULL) AND (tasks.milestone_id IS NOT NULL))
              Rows Removed by Filter: 650237
        ->  Nested Loop  (cost=0.98..46306291.52 rows=28266 width=8) (actual time=12863.972..12863.973 rows=1 loops=1)
              Output: t0.id
              Inner Unique: true
              ->  Index Scan using tasks_pkey on public.tasks t0  (cost=0.56..14350439.73 rows=13852340 width=16) (actual time=0.010..4179.561 rows=3372237 loops=1)
                    Output: t0.project_id, t0.id
                    Index Cond: (t0.id IS NOT NULL)
              ->  Index Scan using projects_pkey on public.projects j0  (cost=0.42..2.31 rows=1 width=8) (actual time=0.002..0.002 rows=0 loops=3372237)
                    Output: j0.id
                    Index Cond: (j0.id = t0.project_id)
                    Filter: (j0.organization_id = 79403)
                    Rows Removed by Filter: 1
Planning Time: 0.914 ms
Execution Time: 17945.475 ms

A mesma consulta, sendo executada com LIMIT 500, tem a seguinte explicação:

Limit  (cost=322268.59..322269.84 rows=500 width=1100) (actual time=1329.805..1330.032 rows=500 loops=1)
  Output: tasks.id, tasks.name, tasks.description, tasks.priority, tasks.estimated_hours, tasks.sort_order, tasks.estimated_points, tasks.responsibility, tasks.sign_off_required, tasks.created_at, tasks.updated_at, tasks.milestone_id, tasks.status, tasks.sign_off_user_id, tasks.assignee_id, tasks.creator_id, tasks.start_on, tasks.due_on, tasks.project_id, tasks.template_id, tasks.actual_hours, tasks.deleted_at, tasks.assignment_email_sent_at, tasks.stuck_message, tasks.overdue_pm_reminder_sent_at, tasks.duration, tasks.dependency_type, tasks.dependency_id, tasks.last_activity_at, tasks.completed_at, tasks.overdue_watched_tasks_email_sent_at, tasks.task_type, tasks.must_start_on, tasks.must_start_on_required, tasks.must_start_on_email_sent_at, tasks.visibility, tasks.type, tasks.related_task_id, tasks.action_items_count, tasks.open_action_items_count, tasks.billable_hours, tasks.non_billable_hours, tasks.jira_sync, tasks.public_id, tasks.event_details, tasks.blueprint_task_id, tasks.task_group_id
  ->  Sort  (cost=322268.59..322326.76 rows=23266 width=1100) (actual time=1329.803..1329.989 rows=500 loops=1)
        Output: tasks.id, tasks.name, tasks.description, tasks.priority, tasks.estimated_hours, tasks.sort_order, tasks.estimated_points, tasks.responsibility, tasks.sign_off_required, tasks.created_at, tasks.updated_at, tasks.milestone_id, tasks.status, tasks.sign_off_user_id, tasks.assignee_id, tasks.creator_id, tasks.start_on, tasks.due_on, tasks.project_id, tasks.template_id, tasks.actual_hours, tasks.deleted_at, tasks.assignment_email_sent_at, tasks.stuck_message, tasks.overdue_pm_reminder_sent_at, tasks.duration, tasks.dependency_type, tasks.dependency_id, tasks.last_activity_at, tasks.completed_at, tasks.overdue_watched_tasks_email_sent_at, tasks.task_type, tasks.must_start_on, tasks.must_start_on_required, tasks.must_start_on_email_sent_at, tasks.visibility, tasks.type, tasks.related_task_id, tasks.action_items_count, tasks.open_action_items_count, tasks.billable_hours, tasks.non_billable_hours, tasks.jira_sync, tasks.public_id, tasks.event_details, tasks.blueprint_task_id, tasks.task_group_id
        Sort Key: tasks.id
        Sort Method: top-N heapsort  Memory: 444kB
        ->  Nested Loop  (cost=218419.30..321109.27 rows=23266 width=1100) (actual time=563.649..1313.910 rows=20876 loops=1)
              Output: tasks.id, tasks.name, tasks.description, tasks.priority, tasks.estimated_hours, tasks.sort_order, tasks.estimated_points, tasks.responsibility, tasks.sign_off_required, tasks.created_at, tasks.updated_at, tasks.milestone_id, tasks.status, tasks.sign_off_user_id, tasks.assignee_id, tasks.creator_id, tasks.start_on, tasks.due_on, tasks.project_id, tasks.template_id, tasks.actual_hours, tasks.deleted_at, tasks.assignment_email_sent_at, tasks.stuck_message, tasks.overdue_pm_reminder_sent_at, tasks.duration, tasks.dependency_type, tasks.dependency_id, tasks.last_activity_at, tasks.completed_at, tasks.overdue_watched_tasks_email_sent_at, tasks.task_type, tasks.must_start_on, tasks.must_start_on_required, tasks.must_start_on_email_sent_at, tasks.visibility, tasks.type, tasks.related_task_id, tasks.action_items_count, tasks.open_action_items_count, tasks.billable_hours, tasks.non_billable_hours, tasks.jira_sync, tasks.public_id, tasks.event_details, tasks.blueprint_task_id, tasks.task_group_id
              Inner Unique: true
              ->  HashAggregate  (cost=218418.74..218701.41 rows=28267 width=8) (actual time=563.618..570.523 rows=21926 loops=1)
                    Output: t0.id
                    Group Key: t0.id
                    Batches: 1  Memory Usage: 2065kB
                    ->  Gather  (cost=1000.56..218348.08 rows=28267 width=8) (actual time=1.032..553.590 rows=21926 loops=1)
                          Output: t0.id
                          Workers Planned: 2
                          Workers Launched: 2
                          ->  Nested Loop  (cost=0.56..214521.38 rows=11778 width=8) (actual time=1.020..522.937 rows=7309 loops=3)
                                Output: t0.id
                                Worker 0:  actual time=2.356..510.679 rows=7819 loops=1
                                Worker 1:  actual time=0.063..537.921 rows=7849 loops=1
                                ->  Parallel Seq Scan on public.projects j0  (cost=0.00..53613.72 rows=417 width=8) (actual time=0.515..68.601 rows=220 loops=3)
                                      Output: j0.id
                                      Filter: (j0.organization_id = 79403)
                                      Rows Removed by Filter: 90977
                                      Worker 0:  actual time=0.885..109.155 rows=225 loops=1
                                      Worker 1:  actual time=0.034..37.727 rows=212 loops=1
                                ->  Index Scan using index_tasks_on_project_id on public.tasks t0  (cost=0.56..384.30 rows=157 width=16) (actual time=0.886..2.059 rows=33 loops=660)
                                      Output: t0.project_id, t0.id
                                      Index Cond: (t0.project_id = j0.id)
                                      Filter: (t0.id IS NOT NULL)
                                      Worker 0:  actual time=0.698..1.778 rows=35 loops=225
                                      Worker 1:  actual time=0.960..2.353 rows=37 loops=212
              ->  Index Scan using tasks_pkey on public.tasks  (cost=0.56..3.63 rows=1 width=1100) (actual time=0.033..0.033 rows=1 loops=21926)
                    Output: tasks.id, tasks.name, tasks.description, tasks.priority, tasks.estimated_hours, tasks.sort_order, tasks.estimated_points, tasks.responsibility, tasks.sign_off_required, tasks.created_at, tasks.updated_at, tasks.milestone_id, tasks.status, tasks.sign_off_user_id, tasks.assignee_id, tasks.creator_id, tasks.start_on, tasks.due_on, tasks.project_id, tasks.template_id, tasks.actual_hours, tasks.deleted_at, tasks.assignment_email_sent_at, tasks.stuck_message, tasks.overdue_pm_reminder_sent_at, tasks.duration, tasks.dependency_type, tasks.dependency_id, tasks.last_activity_at, tasks.completed_at, tasks.overdue_watched_tasks_email_sent_at, tasks.task_type, tasks.must_start_on, tasks.must_start_on_required, tasks.must_start_on_email_sent_at, tasks.visibility, tasks.type, tasks.related_task_id, tasks.action_items_count, tasks.open_action_items_count, tasks.billable_hours, tasks.non_billable_hours, tasks.jira_sync, tasks.public_id, tasks.event_details, tasks.blueprint_task_id, tasks.task_group_id
                    Index Cond: (tasks.id = t0.id)
                    Filter: ((tasks.deleted_at IS NULL) AND (tasks.milestone_id IS NOT NULL))
                    Rows Removed by Filter: 0
Planning Time: 0.872 ms
Execution Time: 1330.691 ms

Corrija-me se estiver errado, mas o culpado é o planejador de consulta por escolher um plano de consulta tão ineficiente com um pequeno arquivo LIMIT. Como o planejador de consulta usa o pg_statisticspara fazer seus planos de execução, acreditamos que nossas estatísticas sejam inválidas. Ao verificar, determinamos que correr VACUUM(FULL, ANALYZE, VERBOSE)seria a melhor solução para nós. Se você usar este comando, seja cauteloso. Pode demorar um pouco e bloqueará as tabelas do banco de dados temporariamente . Isso atualizou as estatísticas, mas o planejador de consulta ainda está escolhendo um plano de execução incorreto.

Eu adoraria entender por que o planejador de consultas está escolhendo um plano tão ineficiente e como isso pode ser resolvido.

postgresql
  • 1 respostas
  • 33 Views
Martin Hope
user1054844
Asked: 2023-08-11 19:48:16 +0800 CST

Na atualização: o login falhou para o sysadm autenticado do SQL Server

  • 5

Encontrei um bug estranho?

O usuário reclamou comigo que não pode mais atualizar certas tabelas no banco de dados. Ele tinha direitos de proprietário no banco de dados e o login era o login da janela (ad-login). Tentei elevá-lo para sysadm, verifiquei todos os direitos e até deletei e adicionei o login novamente. Mesmo assim o problema continuou.

Eu tentei criar um sysadm-login do SQL Server, então eu não teria que pensar sobre o problema do AD e tentei isso. o mesmo erro consiste. Ambos os logins podem fazer login na instância SQL, SELECT data, UPDATE certas tabelas, mas não podem UPDATE outras.

Logins mais antigos (como o meu) funcionam bem em tudo, mas os mais novos não. Não tenho ideia do que pode estar causando isso.

Msg 18456, Nível 14, Estado 1, Linha 1 Login falhou para o usuário 'xxxx'

Versão: Microsoft SQL Server 2017 (RTM-CU31) (KB5016884) - 14.0.3456.2 (X64) Set 2 2022 11:01:50 Copyright (C) 2017 Microsoft Corporation Standard Edition (64 bits) no Windows Server 2019 Standard 10.0 ( Build 17763: ) (Hipervisor)

sql-server
  • 2 respostas
  • 64 Views
Martin Hope
Himanshuman
Asked: 2023-08-11 17:46:39 +0800 CST

Exclua todas as linhas se o parâmetro de entrada for 0, caso contrário, exclua apenas as entradas que correspondem ao parâmetro de entrada

  • 5

Eu tenho um procedimento armazenado que está recebendo id como entrada. Se o id recebido for 0, precisamos excluir todas as linhas, caso contrário, precisamos excluir apenas as linhas que correspondem ao id de entrada.

Posso fazer isso dividindo minha consulta usando um if-else, mas esse é o problema aqui, queremos fazer isso em uma única consulta usando JOINSe CASE(pode ser).

Aqui está a minha mesa.

CREATE TABLE InfineonFiles (
    infimax INTEGER NOT NULL,
    neonId  INTEGER NOT NULL,
    eTime   INTEGER NOT NULL,
    pTime   INTEGER NOT NULL,
    cisId   INTEGER NOT NULL )

O atributo de entrada é, digamos,

DECLARE @inpId INT = [ 0 OR POSITIVE INTEGER]

Deletar é assim

IF @inpId = 0
    DELETE TOP (5000) AIA FROM InfineonFiles WHERE pTime < @timeUnitInSeconds 
ELSE
    DELETE TOP (5000) AIA FROM InfineonFiles WHERE pTime < @timeUnitInSeconds AND cisId = inpId 

O acima precisa estar em uma única consulta. Como eu posso fazer isso?

sql-server
  • 2 respostas
  • 33 Views
Martin Hope
AlexGordon
Asked: 2023-08-10 20:09:37 +0800 CST

Alta carga de CPU após exclusão massiva no servidor PostgreSQL

  • 10
Esta pergunta foi migrada do Stack Overflow porque pode ser respondida no Database Administrators Stack Exchange. Migrado há 4 dias .

Excluí ~ 65 milhões de linhas de uma tabela PostgreSQL com ~ 75 milhões de linhas. Assim que a consulta de exclusão foi concluída, a CPU caiu para 100% por cerca de cinco minutos.

A tabela da qual as linhas foram excluídas tem vários índices e estava em uso intenso durante a exclusão e depois dela. Infelizmente não tenho como reproduzir isso, pois aconteceu em ambiente de produção.

É provável que o autovacuum tenha entrado em ação e, em caso afirmativo, poderia conduzir um banco de dados com 32 núcleos de CPU para 100% de uso da CPU? Em caso afirmativo, existe uma maneira de limitar a ingestão de autovacuum para que não prejudique o desempenho do banco de dados após consultas de exclusão em massa?

Estou usando o PostgreSQL versão 14.8.

postgresql
  • 1 respostas
  • 595 Views
Martin Hope
nathyxy
Asked: 2023-08-10 08:52:52 +0800 CST

Como permitir apenas SELECT, INSERT no SQL Server 15?

  • 5
Esta pergunta foi migrada do Stack Overflow porque pode ser respondida no Database Administrators Stack Exchange. Migrado há 10 dias .

Gostaria de ajustar as permissões de uma tabela do SQL Server para que apenas SELECTe INSERTos comandos sejam possíveis para os usuários. A execução de todos os outros comandos (por exemplo UPDATE, DELETE, , ...) não deve ser possível.

Eu tentei o seguinte:

USE MyDB
GO

CREATE TABLE dbo.TestTable
(
    colA INT,
    colB INT
);

CREATE ROLE my_role;

GRANT SELECT, INSERT ON OBJECT::dbo.TestTable TO my_role;
DENY UPDATE, DELETE ON OBJECT::dbo.TestTable TO my_role;

ALTER ROLE my_role ADD MEMBER user1;

Mas as permissões não parecem ter mudado. Tudo ainda é possível. Eu li que as cadeias de propriedade podem ser a causa, mas mesmo se eu criar um novo esquema com público como proprietário e criar a tabela neste esquema, é o mesmo que acima.

Como posso definir permissões de tabela que funcionarão?

sql-server
  • 1 respostas
  • 46 Views
Prev
Próximo

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