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
Neil McGuigan
Asked: 2014-01-04 14:07:29 +0800 CST

Como obter todas as funções das quais um usuário é membro (incluindo funções herdadas)?

  • 40

Digamos que eu tenha dois grupos de banco de dados Postgresql, "autores" e "editores", e dois usuários, "maxwell" e "ernest".

create role authors;

create role editors;

create user maxwell;

create user ernest;

grant authors to editors; --editors can do what authors can do

grant editors to maxwell; --maxwell is an editor

grant authors to ernest; --ernest is an author

Eu gostaria de escrever uma função performante que retornasse uma lista dos papéis (de preferência seus oid's) aos quais o maxwell pertence, algo assim:

create or replace function get_all_roles() returns oid[] ...

Deve retornar os oids para maxwell, autores e editores (mas não ernest).

Mas não tenho certeza de como fazê-lo quando há herança.

postgresql users
  • 6 respostas
  • 93333 Views
Martin Hope
user11512
Asked: 2013-06-22 07:15:31 +0800 CST

Formatando T-SQL no SSMS 2012

  • 40

De acordo com este documento da Microsoft:

http://msdn.microsoft.com/en-us/library/ms174205.aspx

Eu deveria ser capaz de usar ctrl + K e depois ctrl + D para formatar meus documentos SQL no SQL Server Management Studio 2012, mas quando uso essa combinação, recebo o erro:

A combinação de teclas (Ctrl+K, Ctrl+D) está vinculada ao comando (Formatar Documento) que não está disponível no momento.

Estou tentando fazer modificações em um documento SQL existente que não tem formatação, o que torna extremamente difícil de ler. Alguém sabe como disponibilizar o comando Format Document para que eu possa formatar esse código SQL para mim?

sql-server ssms
  • 4 respostas
  • 78676 Views
Martin Hope
MicBehrens
Asked: 2013-06-20 12:08:59 +0800 CST

Modelo de recuperação SIMPLES ou COMPLETO para bancos de dados?

  • 40

Quando devo usar o modelo de recuperação completa e quando devo usar o modelo de recuperação simples para bancos de dados?

Eu sempre usei o modelo de recuperação completa porque é o padrão, mas hoje encontrei este erro:

Provedor Microsoft OLE DB para SQL Server (0x80040E14) O log de transações do banco de dados 'DATABASE NAME' está cheio. Para descobrir por que o espaço no log não pode ser reutilizado, consulte a coluna log_reuse_wait_desc em sys.databases

O banco de dados específico é, na verdade, um dos menores e mais inativos bancos de dados do meu servidor, então não tenho ideia de como o log pode estar cheio nesse banco de dados e não nos outros.

Para reduzir o log e tornar o banco de dados acessível novamente, alterei o modelo de recuperação de FULL para SIMPLE e reduzi o log do arquivo lógico, com o seguinte comando

alter database myDbName SET recovery simple
go
dbcc shrinkfile('LOG FILE LOGICAL NAME', 100)
go

Ajudou, mas agora preciso entender POR QUE ajudou, COMO essa situação começou e COMO evitar isso no futuro?

EDITAR:

Todas as noites, à 1h, estamos fazendo um backup com script de cada banco de dados no servidor. Isso está sendo feito por um script de 31 linhas onde a parte mais importante é

set @Filename = 'D:\backup\' + convert(varchar, getDate(), 112) + ' - ' + @DBName + '.bak'
set @Description = 'Full backup of database ' + @Filename
BACKUP DATABASE @DBName TO DISK = @Filename WITH INIT , NOUNLOAD , NAME = @Description, NOSKIP , STATS = 10, NOFORMAT

O novo modelo de recuperação e a redução de banco de dados entrarão em conflito com esse script?

Não estamos fazendo nenhum outro tipo de backup dos bancos de dados e, portanto, não dos logs de transações, não é?

sql-server sql-server-2008-r2
  • 1 respostas
  • 76388 Views
Martin Hope
chris
Asked: 2013-03-16 06:35:50 +0800 CST

Como posso verificar se estou usando SSL para me conectar ao mysql?

  • 40

Configurei meu servidor para permitir SSL e modifiquei meu cliente ~/.my.cnf para usar SSL:

[client]
ssl
ssl-cipher=DHE-RSA-AES256-SHA
ssl-ca=~/certs/ca-cert.pem

Quando faço login com meu cliente e visualizo o status, ele lista uma cifra na linha SSL:

mysql> \s
--------------
SSL:            Cipher in use is DHE-RSA-AES256-SHA

Sem instalar algo como o wireshark para verificar se a conexão é segura, posso presumir que estou me conectando via SSL com base nessas informações?

mysql ssl
  • 7 respostas
  • 67088 Views
Martin Hope
Kev
Asked: 2012-07-20 09:34:50 +0800 CST

A função LAST_INSERT_ID() do MySql é garantida como correta?

  • 40

Quando faço uma única linha INSERTem uma tabela que possui uma AUTO_INCREMENTcoluna, gostaria de usar a LAST_INSERT_ID()função para retornar o novo AUTO_INCREMENTvalor 'ed armazenado para essa linha.

Como muitos desenvolvedores e administradores do Microsoft SQL Server, sem dúvida, estão cientes de que a funcionalidade equivalente no SQL Server ( SCOPE_IDENTITYe @@IDENTITY) não foi isenta de problemas .

Eu sei que o estado dos documentos do MySQL:

O ID que foi gerado é mantido no servidor por conexão . Isso significa que o valor retornado pela função para um determinado cliente é o primeiro AUTO_INCREMENTvalor gerado para a declaração mais recente que afeta uma AUTO_INCREMENTcoluna por esse cliente . Este valor não pode ser afetado por outros clientes, mesmo que gerem AUTO_INCREMENTvalores próprios. Esse comportamento garante que cada cliente possa recuperar seu próprio ID sem se preocupar com a atividade de outros clientes e sem a necessidade de bloqueios ou transações.

(fonte)

e até chega a dizer:

Usar LAST_INSERT_ID()e AUTO_INCREMENTcolunas simultaneamente de vários clientes é perfeitamente válido.

(fonte)

Existem riscos ou cenários conhecidos que podem fazer com que LAST_INSERT_ID()não retorne o valor correto?

Estou usando o MySQL 5.5 no CentOS 5.5 x64 e Fedora 16 x64 e o mecanismo InnoDB.

mysql auto-increment
  • 2 respostas
  • 65613 Views
Martin Hope
Mark S. Rasmussen
Asked: 2012-06-01 06:49:05 +0800 CST

Varreduras inesperadas durante a operação de exclusão usando WHERE IN

  • 40

Eu tenho uma consulta como a seguinte:

DELETE FROM tblFEStatsBrowsers WHERE BrowserID NOT IN (
    SELECT DISTINCT BrowserID FROM tblFEStatsPaperHits WITH (NOLOCK) WHERE BrowserID IS NOT NULL
)

tblFEStatsBrowsers tem 553 linhas.
tblFEStatsPaperHits tem 47.974.301 linhas.

tblFEStatsNavegadores:

CREATE TABLE [dbo].[tblFEStatsBrowsers](
    [BrowserID] [smallint] IDENTITY(1,1) NOT NULL,
    [Browser] [varchar](50) NOT NULL,
    [Name] [varchar](40) NOT NULL,
    [Version] [varchar](10) NOT NULL,
    CONSTRAINT [PK_tblFEStatsBrowsers] PRIMARY KEY CLUSTERED ([BrowserID] ASC)
)

tblFEStatsPaperHits:

CREATE TABLE [dbo].[tblFEStatsPaperHits](
    [PaperID] [int] NOT NULL,
    [Created] [smalldatetime] NOT NULL,
    [IP] [binary](4) NULL,
    [PlatformID] [tinyint] NULL,
    [BrowserID] [smallint] NULL,
    [ReferrerID] [int] NULL,
    [UserLanguage] [char](2) NULL
)

Há um índice clusterizado em tblFEStatsPaperHits que não inclui BrowserID. A execução da consulta interna exigirá, portanto, uma varredura completa da tabela de tblFEStatsPaperHits - o que está totalmente OK.

Atualmente, uma varredura completa é executada para cada linha em tblFEStatsBrowsers, o que significa que tenho 553 varreduras completas da tabela de tblFEStatsPaperHits.

Reescrever apenas para WHERE EXISTS não altera o plano:

DELETE FROM tblFEStatsBrowsers WHERE NOT EXISTS (
    SELECT * FROM tblFEStatsPaperHits WITH (NOLOCK) WHERE BrowserID = tblFEStatsBrowsers.BrowserID
)

No entanto, conforme sugerido por Adam Machanic, adicionar uma opção HASH JOIN resulta no plano de execução ideal (apenas uma única varredura de tblFEStatsPaperHits):

DELETE FROM tblFEStatsBrowsers WHERE NOT EXISTS (
    SELECT * FROM tblFEStatsPaperHits WITH (NOLOCK) WHERE BrowserID = tblFEStatsBrowsers.BrowserID
) OPTION (HASH JOIN)

Agora, isso não é tanto uma questão de como consertar isso - posso usar a OPTION (HASH JOIN) ou criar uma tabela temporária manualmente. Estou mais me perguntando por que o otimizador de consulta usaria o plano que usa atualmente.

Como o QO não possui nenhuma estatística na coluna BrowserID, suponho que esteja assumindo o pior - 50 milhões de valores distintos, exigindo assim uma tabela de trabalho em memória/tempdb bastante grande. Dessa forma, a maneira mais segura é realizar verificações para cada linha em tblFEStatsBrowsers. Não há relacionamento de chave estrangeira entre as colunas BrowserID nas duas tabelas, portanto, o QO não pode deduzir nenhuma informação de tblFEStatsBrowsers.

É este, tão simples quanto parece, o motivo?

Atualização 1
Para fornecer algumas estatísticas: OPÇÃO (HASH JOIN):
208.711 leituras lógicas (12 varreduras)

OPÇÃO (LOOP JOIN, HASH GROUP):
11.008.698 leituras lógicas (~scan per BrowserID (339))

Sem opções:
11.008.775 leituras lógicas (~scan per BrowserID (339))

Atualização 2
Excelentes respostas, todos vocês - obrigado! Difícil escolher apenas um. Embora Martin tenha sido o primeiro e Remus forneça uma excelente solução, tenho que dar ao Kiwi por pensar nos detalhes :)

query sql-server-2008-r2
  • 3 respostas
  • 4406 Views
Martin Hope
Muhammad Hasan Khan
Asked: 2012-04-15 09:18:20 +0800 CST

Qual é o ponto de WHERE 1 = 2 para consulta de tabela SELECT INTO

  • 40

Se quisermos criar uma nova tabela a partir de uma existente no SQL Server, podemos fazer o seguinte

SELECT * into Table2
from Table1
WHERE 1=2

Qual é o ponto da cláusula where? Eu tentei sem a cláusula where e funcionou bem. Eu vi essa cláusula where em muitos exemplos na internet, mas não a razão pela qual ela é necessária.

sql-server
  • 1 respostas
  • 36014 Views
Martin Hope
ivanmp
Asked: 2012-03-08 12:25:51 +0800 CST

O que um DBA precisa saber sobre SSAS?

  • 40

Já vi muito material cobrindo o aspecto comercial do SSAS, mas não muito sobre os aspectos importantes de administração e gerenciamento.

Do ponto de vista da administração de uma instância do SQL Server Analysis Services, o que um DBA ativo precisa saber sobre o SSAS para gerenciá-lo de maneira correta e eficiente?

sql-server ssas
  • 2 respostas
  • 21536 Views
Martin Hope
JNK
Asked: 2012-01-28 08:57:22 +0800 CST

Tipo de espera SLEEP_TASK no SQL Server - O que isso indica?

  • 40

Eu não tinha visto o SLEEP_TASKtipo de espera antes, e hoje parece que estou recebendo uma tonelada deles.

Eu não sou o DBA oficial, apenas um desenvolvedor SQL Server que conhece algumas coisas de DBA. Nós atualizamos nossos servidores no último fim de semana para 10.52.2500.0- R2SP1, eu acho.

Todas as informações que encontrei on-line indicam que SLEEP_TASKo servidor está aguardando a conclusão de algum tipo de processo interno. Eu não tenho nenhum bloqueio ou nenhum processo em segundo plano, como pontos de verificação ou limpeza fantasma em execução, então estou um pouco perplexo.

Alguém já viu esse tipo de espera antes e, em caso afirmativo, pode me dar uma idéia do que está causando isso?

sql-server sql-server-2008-r2
  • 1 respostas
  • 35655 Views
Martin Hope
Mokus
Asked: 2011-07-20 23:24:46 +0800 CST

Código de erro 1117 Muitas colunas; Limite de colunas do MySQL na tabela

  • 40

Tenho uma tabela com 1699 colunas e quando tento inserir mais colunas recebo,

Código de erro: 1117. Muitas colunas

Nesta tabela eu tenho apenas 1000 linhas. Para mim, o mais importante é o número de colunas. Há alguma limitação na mesa? Eu quero criar 2000 colunas. Isso é possível?

mysql table
  • 6 respostas
  • 75357 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