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

Nick Chammas's questions

Martin Hope
Nick Chammas
Asked: 2018-08-14 08:37:02 +0800 CST

Qual é a diferença entre ALL_TABLES e TABLES?

  • 0

Os documentos não são esclarecedores:

  • ALL_TABLES :

    Fornece informações resumidas sobre tabelas em um banco de dados Vertica.

  • TABELAS :

    Fornece informações sobre todas as tabelas no banco de dados.

A razão pela qual estou perguntando é que os usuários estão confusos sobre por que podem ver algumas tabelas em uma, mas não na outra. Está relacionado a permissões, mas não está claro exatamente como.

Por exemplo, um usuário está me dizendo que tem acesso para consultar uma tabela. No entanto, essa tabela não aparece em TABLESe suas colunas não aparecem em COLUMNS, mas a tabela aparece em ALL_TABLES.

Então, isso leva às seguintes perguntas:

  1. Qual é a diferença entre ALL_TABLESe TABLES?
  2. Como os usuários podem ver uma lista de todas as tabelas (e colunas!) que eles têm acesso à consulta?
vertica
  • 1 respostas
  • 340 Views
Martin Hope
Nick Chammas
Asked: 2016-03-24 10:30:03 +0800 CST

Por que CURRENT_LOAD_SOURCE() retorna "Batch No. 1" em vez do nome real do arquivo de origem?

  • 2

Estou carregando alguns dados em uma tabela como esta:

COPY table1 (
    col1,
    col2,
    file_name AS CURRENT_LOAD_SOURCE()
)
FROM LOCAL :src_file
REJECTED DATA :rejected_file
EXCEPTIONS :exceptions_file
SKIP 1;

Funciona, exceto file_nameque é preenchido com a string Batch No. 1em vez do nome base real de :src_file.

O documentoCURRENT_LOAD_SOURCE() não explica por que isso está acontecendo.

Isso é um inseto? Como faço para obter o nome real do arquivo de origem?

vertica copy
  • 1 respostas
  • 80 Views
Martin Hope
Nick Chammas
Asked: 2016-03-11 11:27:11 +0800 CST

Definir banco de dados padrão para conexão

  • 1

Pergunta super n00b, eu sei, mas não consigo encontrá-la em nenhum lugar fácil de encontrar, então seria bom documentar isso aqui.

Digamos que eu me conecte a um sistema Teradata como um usuário específico NICK, mas preciso acessar tabelas pertencentes a um usuário diferente, BOB.

Em vez de qualificar cada nome de tabela BOB., gostaria apenas de definir meu banco de dados padrão para a conexão BOBe, em seguida, consultar as tabelas usando seu nome não qualificado.

Em outras palavras, em vez disso:

-- Cartesian Join of Doom (CJD™)
SELECT COUNT(*)
FROM BOB.TABLE1, BOB.TABLE2, BOB.TABLE3;

Eu quero ser capaz de fazer isso:

-- CJD™ for the lazy
SELECT COUNT(*)
FROM TABLE1, TABLE2, TABLE3;

Existe uma maneira de fazer isso durante a vida útil de uma conexão?

teradata
  • 1 respostas
  • 4430 Views
Martin Hope
Nick Chammas
Asked: 2016-03-08 10:41:02 +0800 CST

Por que a Vertica permitiria que eu iniciasse uma transação se não pudesse revertê-la?

  • 2

Eu executo as seguintes instruções em um banco de dados Vertica, uma de cada vez:

BEGIN TRANSACTION;

UPDATE table
SET col1 = 'something'
WHERE col2 = 'something else';

SELECT COUNT(*)
FROM table
WHERE col1 = 'something';

ROLLBACK TRANSACTION;

Eu corro bem a primeira linha... OK, agora estou em uma transação.

Eu executo minha atualização... OK, funcionou.

Eu executo meu SELECTteste para ter certeza de que as coisas funcionaram conforme o esperado... Oh, espere, parece que perdi uma condição na WHEREcláusula da minha UPDATEdeclaração.

Sem problemas! É por isso que fiz isso em uma transação.

Vamos reverter:

=> ROLLBACK TRANSACTION;

[Vertica][JDBC](10040) Cannot use commit while Connection is in auto-commit mode.

Jones, me dê aquele rolo de papel higiênico que você tem na sua mesa.

Assim, Vertica aceitou alegremente meu BEGIN TRANSACTION, sabendo muito bem que logo depois disso eu tentaria executar um ROLLBACKou COMMIT.

No entanto, não posso! Minha conexão está no modo de confirmação automática, então ROLLBACKe COMMITnão significa nada. O meu UPDATEfoi confirmado no momento em que foi concluído.

Eu perdi alguma coisa, ou estou certo em pensar que esta é apenas uma implementação muito ruim da parte da Vertica?

Por que o Vertica aceitaria um BEGIN TRANSACTIONem uma conexão no modo de confirmação automática se as consequências lógicas ( ROLLBACKou COMMIT) são ilegais?

transaction vertica
  • 2 respostas
  • 1480 Views
Martin Hope
Nick Chammas
Asked: 2016-01-15 11:58:18 +0800 CST

A COPY da Vertica é atômica?

  • 4

Parece uma coisa simples, mas não consigo encontrá-lo nos documentos para COPY.

O Vertica é COPYatômico? Se um carregamento de dados for interrompido ou falhar de alguma forma, o Vertica cuidará da limpeza?

vertica copy
  • 1 respostas
  • 271 Views
Martin Hope
Nick Chammas
Asked: 2014-05-15 06:24:09 +0800 CST

Como obtenho o tamanho de um banco de dados Vertica?

  • 7

Eu tenho um banco de dados Vertica. Como posso saber o tamanho do banco de dados?

Preciso de uma resposta aproximada para relatar estatísticas básicas sobre nosso ambiente para a alta administração.

vertica database-size
  • 3 respostas
  • 18627 Views
Martin Hope
Nick Chammas
Asked: 2012-07-03 15:51:26 +0800 CST

Como faço para que o RMAN trate meus arquivos de dados restaurados como se fossem originais?

  • 3

Estou planejando uma migração para esse banco de dados Oracle antigo, mas crítico, de um cluster do Windows Server 2003 para outro.

O banco de dados tem muitos arquivos de dados e todos estão obtendo novos caminhos no cluster de destino. Os únicos caminhos que permanecem os mesmos são para os arquivos de backup.

O plano de migração que tenho é o seguinte:

  1. Faça backup do banco de dados no cluster de origem usando nosso script de backup RMAN noturno:

    run {  
        allocate channel Channel1 type disk format 'F:\backup\folder\%d_%T_%s_%U.bak';
        allocate channel Channel2 ... 
    
        backup check logical ( database );
        backup check logical ( archivelog all  not backed up 2 times );
        backup check logical ( current controlfile );
    } 
    
    allocate channel for maintenance device type disk;
    delete archivelog until time 'sysdate - 2' backed up 2 times to disk;
    delete obsolete device type disk;
    

    Nossa política de retenção RMAN em ambos os clusters está definida como redundancy 2, e o arquivo de controle está sendo usado como o catálogo de recuperação.

  2. Copie os arquivos de backup F:\backup\folderno cluster de destino.

  3. Restaure o banco de dados no cluster de destino usando este script RMAN:

    run {
        allocate channel Channel1 type disk;
        allocate channel Channel2 ...
    
        set until sequence <sequence number> thread 1;
    
        SET NEWNAME FOR DATAFILE 'Old\Path\FILE01.DBF' TO 'New\Path\FILE01.DBF';
        SET NEWNAME FOR DATAFILE ...
    
        restore database;
    }
    
  4. Atualize os caminhos do arquivo de dados no arquivo de controle, recupere o banco de dados para a sequência apropriada e abra-o com resetlogs.

Isso funciona muito bem com a seguinte exceção:

Quando peço ao RMAN para excluir arquivos obsoletos no cluster de destino, ele nomeia todos os arquivos de dados recém-restaurados como obsoletos!

RMAN> delete obsolete device type disk;
...    
Deleting the following obsolete backups and copies:
Type                 Key    Completion Time    Filename/Handle
-------------------- ------ ------------------ --------------------
Datafile Copy        1      02-JUL-12          New\Path\FILE01.DBF
...

Bem, o RMAN está correto em reconhecer esses arquivos de dados como cópias.

No entanto, como esta é uma migração de banco de dados, essas cópias devem ser os novos originais, portanto, certamente não quero que o RMAN as exclua como parte de sua manutenção!

É possível ajustar esse processo de migração para que o RMAN trate o banco de dados restaurado como o novo original?

oracle restore
  • 1 respostas
  • 2774 Views
Martin Hope
Nick Chammas
Asked: 2012-06-26 15:12:40 +0800 CST

É seguro executar um software antivírus em meus servidores de banco de dados?

  • 7

Algumas implementações de software antivírus são conhecidas pela Microsoft por causar uma variedade de problemas para o SQL Server , e a Microsoft tem um artigo de suporte dedicado apenas a escolher o software antivírus certo para seus hosts SQL Server.

Pela sua experiência, é seguro executar um software antivírus em seus servidores de banco de dados?

Dadas todas as exclusões e ressalvas de antivírus necessárias a serem consideradas, é prático?

sql-server security
  • 2 respostas
  • 5074 Views
Martin Hope
Nick Chammas
Asked: 2012-06-09 11:47:32 +0800 CST

Por que 10 ^ 37 / 1 gera um erro de estouro aritmético?

  • 11

Continuando minha tendência recente de jogar com grandes números , recentemente reduzi um erro que estava encontrando para o seguinte código:

DECLARE @big_number DECIMAL(38,0) = '1' + REPLICATE(0, 37);

PRINT @big_number + 1;
PRINT @big_number - 1;
PRINT @big_number * 1;
PRINT @big_number / 1;

A saída que recebo para este código é:

10000000000000000000000000000000000001
9999999999999999999999999999999999999
10000000000000000000000000000000000000
Msg 8115, Level 16, State 2, Line 6
Arithmetic overflow error converting expression to data type numeric.

O que?

Por que as 3 primeiras operações funcionariam, mas não a última? E como pode haver um erro de estouro aritmético se @big_numberobviamente pode armazenar a saída de @big_number / 1?

sql-server sql-server-2008
  • 1 respostas
  • 1392 Views
Martin Hope
Nick Chammas
Asked: 2012-06-02 12:54:52 +0800 CST

Por que o SQL Server "Compute Scalar" quando eu SELECIONO uma coluna computada persistida?

  • 21

As três SELECTinstruções neste código

USE [tempdb];
GO

SET NOCOUNT ON;

CREATE TABLE dbo.persist_test (
      id            INT NOT NULL
    , id5           AS (id * 5)
    , id5p          AS (id * 5) PERSISTED
);

INSERT INTO dbo.persist_test (id)
VALUES (1), (2), (3);

SELECT id
FROM dbo.persist_test;

SELECT id5
FROM dbo.persist_test;

SELECT id5p
FROM dbo.persist_test;

DROP TABLE dbo.persist_test;

gerar este plano:

plano de execução

Por que o final SELECT, que está selecionando um valor persistente, gera um operador Compute Scalar ?

sql-server sql-server-2008
  • 1 respostas
  • 8036 Views
Martin Hope
Nick Chammas
Asked: 2012-05-08 02:48:38 +0800 CST

O que as colunas em SYS.USER$ representam?

  • 4

Na SYS.USER$exibição, o que as colunas CTIME, PTIMEe representam?LTIME

Onde posso encontrar a documentação da Oracle para esta e outras visualizações do sistema?

oracle oracle-9i
  • 2 respostas
  • 83282 Views
Martin Hope
Nick Chammas
Asked: 2012-04-24 08:00:47 +0800 CST

Como faço para limitar o Oracle para usar portas específicas?

  • 3

Criei uma nova instância Oracle 9iR2 em um cluster Windows 2003 de 32 bits. Claro, é a versão 9i por motivos fora do meu controle. Vários servidores de aplicativos se conectam a esta instância e cada um abre várias DEDICATEDconexões que eles mantêm abertas para seu trabalho.

Esta instância está em um ambiente bloqueado, então meu pessoal de rede quer selar o máximo de portas possível. Para fazer isso, preciso dizer a eles exatamente quais portas ou intervalos de portas a instância precisa abrir.

Eu dei uma olhada na documentação do Ouvinte e posso ver que posso alterar a porta padrão do Ouvinte de 1521. No entanto, cada conexão que esses servidores de aplicativos abrem no banco de dados parece obter sua própria porta TCP.

Existe alguma maneira de limitar o intervalo de portas que esses servidores usarão para se conectar ao banco de dados?

oracle configuration
  • 2 respostas
  • 6762 Views
Martin Hope
Nick Chammas
Asked: 2012-01-24 09:48:00 +0800 CST

Como encontro meu SCN atual?

  • 15

Dada qualquer versão do Oracle:

  • Como encontro meu SCN atual?
  • Qual é o SCN máximo possível?
oracle
  • 3 respostas
  • 78313 Views
Martin Hope
Nick Chammas
Asked: 2011-10-18 13:13:48 +0800 CST

Por que "SELECT POWER(10.0, 38.0);" lançar um erro de estouro aritmético?

  • 16

Estou atualizando meu IDENTITYscript de verificação de estouro para contabilizar DECIMALe NUMERIC IDENTITYcolunas .

Como parte da verificação, calculo o tamanho do intervalo do tipo de dados para cada IDENTITYcoluna; Eu uso isso para calcular qual porcentagem desse intervalo foi esgotada. Pois DECIMALe NUMERIC o tamanho desse intervalo é2 * 10^p - 2 onde pestá a precisão.

Criei várias tabelas de teste com colunas DECIMALe NUMERIC IDENTITYe tentei calcular seus intervalos da seguinte maneira:

SELECT POWER(10.0, precision)
FROM sys.columns
WHERE 
       is_identity = 1
   AND type_is_decimal_or_numeric
;

Isso lançou o seguinte erro:

Msg 8115, Level 16, State 6, Line 1
Arithmetic overflow error converting float to data type numeric. 

Eu reduzi para as IDENTITYcolunas do tipo DECIMAL(38, 0)(ou seja, com a precisão máxima), então tentei o POWER()cálculo diretamente naquele valor.

Todas as consultas a seguir

SELECT POWER(10.0, 38.0);
SELECT CONVERT(FLOAT, (POWER(10.0, 38.0)));
SELECT CAST(POWER(10.0, 38.0) AS FLOAT);

também resultou no mesmo erro.

  • Por que o SQL Server tenta converter a saída de POWER(), que é do tipo FLOAT, para NUMERIC(especialmente quando FLOATtem uma precedência mais alta )?
  • Como posso calcular dinamicamente o intervalo de uma coluna DECIMALou para todas as precisões possíveis (incluindo , é claro)?NUMERICp = 38
sql-server sql-server-2008
  • 3 respostas
  • 13781 Views
Martin Hope
Nick Chammas
Asked: 2011-09-17 14:12:58 +0800 CST

Como faço para copiar meu banco de dados do SQL Azure para uma instância local do SQL Server?

  • 12

Eu tenho um banco de dados OLTP hospedado em uma instância do SQL Azure. Quero extrair uma cópia do banco de dados da nuvem para poder executar algumas extrações pesadas e consultas no estilo OLAP sem afetar o banco de dados de origem.

Como faço para obter uma cópia do banco de dados para uma instância local do SQL Server?

backup duplication
  • 5 respostas
  • 14127 Views
Martin Hope
Nick Chammas
Asked: 2011-09-10 13:44:37 +0800 CST

Como posso ajudar o SQL Server a reconhecer que minha coluna de exibição indexada NÃO pode ser NULL?

  • 9

Eu tenho a seguinte visão indexada definida no SQL Server 2008 (você pode baixar um esquema de trabalho do gist para fins de teste):

CREATE VIEW dbo.balances
WITH SCHEMABINDING
AS
SELECT
      user_id
    , currency_id

    , SUM(transaction_amount)   AS balance_amount
    , COUNT_BIG(*)              AS transaction_count
FROM dbo.transactions
GROUP BY
      user_id
    , currency_id
;
GO

CREATE UNIQUE CLUSTERED INDEX UQ_balances_user_id_currency_id
ON dbo.balances (
      user_id
    , currency_id
);
GO

user_id, currency_id, e transaction_amountsão todos definidos como NOT NULLcolunas em dbo.transactions. No entanto, quando olho para a definição de exibição no Object Explorer do Management Studio, ela marca ambas as colunas balance_amounte transaction_countcomo habilitadas na exibição.NULL

Eu dei uma olhada em várias discussões, sendo esta a mais relevante delas, que sugere que algumas funções embaralhadas podem ajudar o SQL Server a reconhecer que uma coluna de exibição é sempre NOT NULL. No entanto, esse embaralhamento não é possível no meu caso, uma vez que expressões em funções agregadas (por exemplo, an ISNULL()over the SUM()) não são permitidas em exibições indexadas.

  1. Existe alguma maneira de ajudar o SQL Server a reconhecer isso balance_amounte transaction_countser NOT NULLcapaz?

  2. Caso contrário, devo me preocupar com o fato de essas colunas serem identificadas erroneamente como NULL-able?

    As duas preocupações que eu poderia pensar são:

    • Qualquer objeto de aplicativo mapeado para a exibição de saldos está obtendo uma definição incorreta de um saldo.
    • Em casos muito limitados, certas otimizações não estão disponíveis para o Query Optimizer, uma vez que não há garantia da exibição de que essas duas colunas são NOT NULL.

    Alguma dessas preocupações é importante? Existem outras preocupações que devo ter em mente?

sql-server-2008 view
  • 2 respostas
  • 4927 Views
Martin Hope
Nick Chammas
Asked: 2011-08-18 08:18:24 +0800 CST

Como posso fazer com que o SQL Server me envie por e-mail os detalhes do erro quando um trabalho falha?

  • 15

O SQL Server permite configurar um trabalho para enviar alertas de e-mail quando ele falhar. Esta é uma maneira simples e eficaz de monitorar seus trabalhos. No entanto, esses alertas não incluem nenhum detalhe, apenas um aviso de sucesso ou falha.

Se um trabalho falhar, este é o aspecto de um e-mail de alerta típico:

JOB RUN:        'DBA - Consistency Check Databases' was run on 8/14/2011 at 12:00:04 AM
DURATION:       0 hours, 0 minutes, 0 seconds
STATUS:         Failed
MESSAGES:       The job failed.  The Job was invoked by Schedule 2 (Nightly Before 
                Backup 12AM).  The last step to run was step 1 (Check Databases).

Para determinar a causa da falha, você precisa navegar até a instância no SQL Server Management Studio, localizar o trabalho e visualizar seu histórico de execução. Em um ambiente grande, pode ser uma dor ter que fazer isso constantemente.

O e-mail de alerta ideal incluiria o motivo da falha antecipadamente e permitiria que você começasse a trabalhar na solução.

Estou familiarizado com esta solução para este problema. Alguém tem alguma experiência com isso? Suas desvantagens são:

  1. você tem que adicionar uma nova etapa a cada trabalho que você tem, e
  2. você tem que rezar para que ninguém estrague o processo de alerta,spDBA_job_notification

Alguém conseguiu uma solução melhor?

sql-server monitoring
  • 4 respostas
  • 17599 Views
Martin Hope
Nick Chammas
Asked: 2011-08-04 10:43:53 +0800 CST

Quando devo reconstruir índices?

  • 64

Quando devo reconstruir os índices em meu banco de dados relacional (SQL Server)?

Existe um caso para reconstruir índices regularmente?

sql-server index-maintenance
  • 6 respostas
  • 92344 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