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
John
Asked: 2014-11-10 18:16:00 +0800 CST

Funções do PostgreSQL versus usuários, conceder permissões

  • 35

Atualmente, estou aprendendo as diferenças entre PostgreSQL e MySQL, pois tenho um novo projeto e também pretendo migrar meu software existente do MySQL para o PostgreSQL. Na verdade, comecei a criar uma tabela HTML com uma comparação de comandos (para usuários/bancos de dados/prompt de comando etc.) entre os dois. Depois de ler uma resposta aqui, notei que roleparece ser usado como um grupo. Com o MySQL, tenho dois usuários, basicamente públicos ( DELETE, INSERTe permissões) SELECTe UPDATEum usuário administrador com algumas permissões adicionais.

Então, basicamente, no prompt de comando do Windows 7 (somente desenvolvimento local)...

  • Uma função é um usuário, grupo ou um termo vagamente usado específico do PostgreSQL?
  • Como faço para conceder apenas permissões específicas a um usuário específico, para todas as tabelas em um banco de dados?
  • Como concedo todas as permissões a um usuário específico, para todas as tabelas em um banco de dados?
  • Como, se for o caso, uma função se compara a um usuário ao usar GRANTou REVOKEpara permissões de usuário?
postgresql users
  • 1 respostas
  • 24233 Views
Martin Hope
Heisenberg
Asked: 2014-10-28 23:20:10 +0800 CST

Como determinar o tamanho das minhas tabelas no banco de dados SQL Server

  • 35

Existe alguma função interna/procedimento armazenado/consulta que seja útil para recuperar informações sobre o tamanho do banco de MyTabledados do SQL Server?

sql-server table
  • 7 respostas
  • 211810 Views
Martin Hope
Tony
Asked: 2014-04-11 19:30:51 +0800 CST

Como posso entrar no Mongo como superusuário ou redefinir usuários?

  • 35

Eu estava brincando com permissões e me tranquei do banco de dados do Mongo. Tenho certeza de que fiz isso tentando adicionar explicitamente acesso a um banco de dados, mas em vez disso, substituí apenas permitindo permissão ao banco de dados. Então, estou efetivamente bloqueado do meu banco de dados Mongo e tudo que leio me diz como criar um superusuário se eu tiver o privilégio de adicionar usuário. No momento, acho que não tenho nenhum usuário que tenha esse privilégio. Existe uma maneira de entrar no banco de dados como acesso total? Eu possuo o servidor e tenho acesso root.

mongodb
  • 6 respostas
  • 101386 Views
Martin Hope
Zane
Asked: 2013-03-28 07:48:39 +0800 CST

Semana ISO x Semana do SQL Server

  • 35

Ok, então eu tenho um relatório que faz uma comparação desta semana x semana passada e nosso cliente notou que seus dados eram "descolados". Após uma investigação mais aprofundada, descobrimos que não estava fazendo semanas corretamente de acordo com os padrões ISO. Eu executei este script como um caso de teste.

SET DATEFIRST 1
SELECT DATEPART(WEEK, '3/26/13')
    , DATEPART(WEEK, '3/27/12')
    , DATEPART(WEEK, '3/20/12')
    , DATEPART(WEEK, '1/2/12')
SELECT DATEPART(ISO_WEEK, '3/26/13')
    , DATEPART(ISO_WEEK, '3/27/12')
    , DATEPART(ISO_WEEK, '3/20/12')
    , DATEPART(ISO_WEEK, '1/2/12')

Ao executar, obtive esses resultados.

Conjunto de resultados

Achei que isso era peculiar e então pesquisei mais um pouco e descobri que o SQL Server conta 1º de janeiro como a primeira semana do ano, onde a ISO conta o primeiro domingo de janeiro como a primeira semana do ano.

A questão então acaba sendo dupla. Pergunta 1 por que isso? Pergunta 2 existe alguma maneira de mudar isso para não ter que modificar todo o meu código para usar ISO_Weekem todos os lugares?

sql-server sql-server-2008
  • 2 respostas
  • 54343 Views
Martin Hope
Dave Jarvis
Asked: 2012-12-16 14:25:50 +0800 CST

Maneira ideal de ignorar inserções duplicadas? [duplicado]

  • 35
Essa pergunta já tem respostas aqui :
Maneira idiomática de implementar UPSERT no PostgreSQL (3 respostas)
Fechado há 7 anos .

Fundo

Esse problema está relacionado a ignorar inserções duplicadas usando o PostgreSQL 9.2 ou superior. A razão pela qual eu pergunto é por causa deste código:

  -- Ignores duplicates.
  INSERT INTO
    db_table (tbl_column_1, tbl_column_2)
  VALUES (
    SELECT
      unnseted_column,
      param_association
    FROM
      unnest( param_array_ids ) AS unnested_column
  );

O código é livre de verificações de valores existentes. (Nesta situação específica, o usuário não se importa com erros de inserção de duplicatas -- a inserção deve "simplesmente funcionar".) Adicionar código nessa situação para testar explicitamente duplicatas traz complicações.

Problema

No PostgreSQL, encontrei algumas maneiras de ignorar inserções duplicadas.

Ignorar duplicatas #1

Crie uma transação que detecte violações de restrição exclusivas, sem realizar nenhuma ação:

  BEGIN
    INSERT INTO db_table (tbl_column) VALUES (v_tbl_column);
  EXCEPTION WHEN unique_violation THEN
    -- Ignore duplicate inserts.
  END;

Ignorar duplicatas #2

Crie uma regra para ignorar duplicatas em uma determinada tabela:

CREATE OR REPLACE RULE db_table_ignore_duplicate_inserts AS
    ON INSERT TO db_table
   WHERE (EXISTS ( SELECT 1
           FROM db_table
          WHERE db_table.tbl_column = NEW.tbl_column)) DO INSTEAD NOTHING;

Perguntas

Minhas perguntas são principalmente acadêmicas:

  • Qual método é mais eficiente?
  • Qual método é mais sustentável e por quê?
  • Qual é a maneira padrão de ignorar erros de duplicação de inserção com o PostgreSQL?
  • Existe uma maneira tecnicamente mais eficiente de ignorar inserções duplicadas; Se assim for, o que é?

Obrigada!

postgresql constraint
  • 1 respostas
  • 96206 Views
Martin Hope
Celeritas
Asked: 2012-12-05 03:48:31 +0800 CST

Permissão negada no arquivo tentando importar

  • 35

Quando tento usar \iem um arquivo que não está na pasta psql.exe, ele diz C:: permission denied. Por exemplo, eu tenho um arquivo com comando SQL em C:\Users\Work\Desktop\School Work\load_database.sqle quando digito \i "C:\Users\Work\Desktop\School Work\load_database.sql"ele diz C:: permission denied. Como posso consertar isso?

Eu encontrei um trabalho por aqui onde você copia o arquivo .sql para a mesma pasta em que o psql.exe está.

A propósito, \i significa importação?

postgresql windows
  • 2 respostas
  • 95702 Views
Martin Hope
Marat
Asked: 2012-11-08 21:21:10 +0800 CST

O tamanho do banco de dados do SQL Server não diminuiu após a exclusão de um grande número de linhas.

  • 35

Não sou bom em SQL, mas tenho um banco de dados para manter.

Quase não há lugar para isso, então decidi excluir todos os dados para, digamos, o ano de 2008. Depois de executar a consulta de exclusão (teve cerca de 10.000.000 linhas limpas) e limpar o log de transações, descobri que meu ações não tiveram efeito no tamanho do banco de dados. Há mais alguma coisa que eu tenha que fazer?

sql-server sql-server-2005
  • 7 respostas
  • 160601 Views
Martin Hope
user5147
Asked: 2012-10-04 03:33:34 +0800 CST

Ainda errado para iniciar o nome de um procedimento armazenado do usuário com sp_?

  • 35

Um dos meus colegas de trabalho nomeou um procedimento armazenado em nosso banco de dados SQL Server 2008 R2 sp_something. Quando vi isso, pensei imediatamente: "Isso está ERRADO!" e comecei a procurar em meus favoritos este artigo on-line que explica por que está errado, para que eu pudesse fornecer uma explicação ao meu colega de trabalho.

No artigo (por Brian Moran ) é explicado que dar ao procedimento armazenado um prefixo sp_ faz com que o SQL Server procure no banco de dados mestre um plano compilado. Como o sp_sprocnão reside lá, o SQL Server irá recompilar o procedimento (e precisa de um lock de compilação exclusivo para isso, causando problemas de performance).

O exemplo a seguir é dado no artigo para mostrar a diferença entre dois procedimentos:

USE tempdb;
GO

CREATE PROCEDURE dbo.Select1 AS SELECT 1;
GO

CREATE PROCEDURE dbo.sp_Select1 AS SELECT 1;
GO

EXEC dbo.sp_Select1;
GO

EXEC dbo.Select1;
GO

Você executa isso, abre o Profiler (adicione os procedimentos armazenados -> SP:CacheMissevento) e execute os procedimentos armazenados novamente. Você deve ver uma diferença entre os dois procedimentos armazenados: o sp_Select1procedimento armazenado gerará um SP:CacheMissevento a mais do que o Select1procedimento armazenado (o artigo faz referência a SQL Server 7.0 e SQL Server 2000 ).

Quando executo o exemplo em meu ambiente SQL Server 2008 R2, obtenho a mesma quantidade de SP:CacheMisseventos para ambos os procedimentos (tanto no tempdb quanto em outro banco de dados de teste).

Então eu me pergunto:

  • Posso ter feito algo errado na minha execução do exemplo?
  • O adágio 'não nomeie um usuário sproc sp_something' ainda é válido em versões mais recentes do SQL Server?
  • Em caso afirmativo, existe um bom exemplo que mostre sua validade no SQL Server 2008 R2?

Muito obrigado por seus pensamentos sobre isso!

EDITAR

Encontrei Criando Procedimentos Armazenados (Mecanismo de Banco de Dados) no msdn para SQL Server 2008 R2, que responde à minha segunda pergunta:

Recomendamos que você não crie nenhum procedimento armazenado usando sp_ como prefixo. O SQL Server usa o prefixo sp_ para designar procedimentos armazenados do sistema. O nome escolhido pode entrar em conflito com algum procedimento futuro do sistema. [...]

Nada é mencionado lá sobre problemas de desempenho causados ​​pelo uso do sp_prefixo. Eu adoraria saber se ainda é o caso ou se eles consertaram depois do SQL Server 2000.

stored-procedures sql-server-2008-r2
  • 4 respostas
  • 5381 Views
Martin Hope
swasheck
Asked: 2012-09-19 10:51:56 +0800 CST

No SQL Server, qual é o propósito de agrupar procedimentos armazenados?

  • 35

Uma das questões mais desconcertantes com as quais tive que lidar tem a ver com grupos de procedimentos armazenados. Dado um procedimento armazenado, usp_DoSomethingAwesomeposso criar esse proc em outro grupo chamando-o usp_DoSomethingAwesome;2.

Descobri isso ao solucionar alguns problemas de replicação (Editor: SQL 2000 Ent., Dist/Sub: 2008 R2 Ent.) que surgiram com alguns dos procedimentos armazenados de replicação Inserir, Atualizar e Excluir gerados pelo sistema.

Qual é o propósito/pensamento por trás dessa habilidade de "agrupamento"?

sql-server stored-procedures
  • 2 respostas
  • 4748 Views
Martin Hope
jcho360
Asked: 2012-05-18 04:26:03 +0800 CST

Copiar a estrutura completa de uma tabela

  • 35

Usando alguns métodos, quando você cria uma cópia de uma tabela você perde índices, PK, FK, etc. Por exemplo no SQL Server posso dizer:

select * into dbo.table2 from dbo.table1;

Esta é apenas uma cópia simples da tabela; todos os índices/restrições estão faltando. Como posso copiar uma estrutura de tabela (sem usar um backup)?

Estou procurando principalmente fazer isso manualmente, mas se isso não for possível, aceitarei qualquer solução.

sql-server index
  • 7 respostas
  • 162185 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