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
D.R.
Asked: 2014-03-11 09:20:07 +0800 CST

Bloquear CRIAR TABELA

  • 19

Em outro aplicativo, fui atingido por um design ruim: vários threads executam um EnsureDatabaseSchemaExists()método simultaneamente, que se parece basicamente com isso:

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'MyTable') AND type = N'U') BEGIN

    CREATE TABLE MyTable ( ... );

END

No entanto, mesmo se executado em uma transação SERIALIZABLE, esse código não parece ser thread-safe (ou seja, o código paralelo tenta criar a tabela várias vezes). Existe alguma chance de forçar a instrução SELECT a adquirir um bloqueio que impeça outro thread de fazer a mesma instrução SELECT?

Existe um padrão melhor para métodos EnsureSchemaExists() multi-threaded?

sql-server locking
  • 2 respostas
  • 1465 Views
Martin Hope
Shiva
Asked: 2014-01-23 01:31:00 +0800 CST

Implicações da alteração do modo de compatibilidade no SQL Server de 100 para 110

  • 19

Tenho um banco de dados Mydatabasecriado no SQL Server 2008 R2. Eu atualizei para o SQL Server 2012.

Eu estava tentando executar a consulta abaixo para calcular o percentil

select Distinct [KEY],PERCENTILE_CONT(0.25)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q1,PERCENTILE_CONT(0.50)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q2,
PERCENTILE_CONT(0.75)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q3,
PERCENTILE_CONT(1)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q4
from Mydatabase

mas estou recebendo um erro informando que

Msg 10762, Level 15, State 1, Line 1
A função PERCENTILE_CONT não é permitida no modo de compatibilidade atual. Só é permitido no modo 110 ou superior.

  1. Posso alterar o modo de compatibilidade para 110?
  2. Quais são as implicações de alterar o modo de compatibilidade de 100 para 110?

Conselho por favor

sql-server-2012 compatibility-level
  • 3 respostas
  • 47093 Views
Martin Hope
Laird Nelson
Asked: 2014-01-23 15:19:30 +0800 CST

Qual é a relação exata entre uma transação de banco de dados e o bloqueio?

  • 19

Esta é uma pergunta humilde feita no espírito de aumentar meu conhecimento; por favor, seja gentil em sua resposta.

Como desenvolvedor de aplicativos de longa data, sei em algum nível o que é uma transação (eu os uso o tempo todo). Deixando de lado os níveis de isolamento da transação no momento, em um nível alto, uma transação permite que um bloco de trabalho seja totalmente concluído ou não seja concluído e permite uma certa quantidade de isolamento de outras atividades de modificação do banco de dados.

Eu também sei o que (em vários bancos de dados) é um bloqueio, ou pelo menos como um se comporta (se eu bloquear uma tabela de alguma forma explicitamente, nenhum outro processo ou encadeamento poderá atualizar nada sobre essa tabela).

O que não estou claramente claro é: em vários bancos de dados, quando bloqueio explicitamente uma linha ou tabela, estou empregando exatamente as mesmas construções usadas pelas instalações de transação do banco de dados nos bastidores para fazer a transação funcionar corretamente?

Ou seja, me ocorre que para uma transação ser atômica e isolada, ela deve estar fazendo algum locking. Esse bloqueio iniciado por transação e oculto por transação é o mesmo tipo de bloqueio que vários bancos de dados me permitem acessar por meio de construções como ou comandos SELECT FOR UPDATEexplícitos ? LOCKOu esses dois conceitos são completamente diferentes?

Mais uma vez, peço desculpas pela ingenuidade desta pergunta; Fico feliz em ser apontado para fontes mais fundamentais.

transaction locking
  • 5 respostas
  • 2058 Views
Martin Hope
NealWalters
Asked: 2014-01-14 09:33:09 +0800 CST

24x7 vs Janela Noturna

  • 19

Onde posso encontrar recursos sobre como passar para uma operação 24 horas por dia, 7 dias por semana? Como as grandes empresas com grandes bancos de dados conseguem isso? Nossos trabalhos noturnos, como

  1. limpar dados antigos
  2. reindexar
  3. atualizar estatísticas

todos parecem causar um impacto crítico em nosso sistema ( ou seja , usuários online e feeds de dados em tempo real). Já procurei na Amazon algum livro relacionado a esse assunto, e até agora não encontrei nada.

sql-server
  • 1 respostas
  • 1265 Views
Martin Hope
Guillermo
Asked: 2014-01-02 21:17:20 +0800 CST

MySQL import csv file ERROR 13 (HY000): Não é possível obter a estatística de /path/file.csv (Errcode: 2)

  • 19

Eu sou um iniciante absoluto no MySQL (5.5.34) / Linux (Ubuntu 12.04 LTS)`

Eu criei um banco de dados simples com uma tabela. Ao tentar importar dados para ele através de um arquivo 'data_test.csv, uma mensagem de erro 13 aparece.

O exercício do Terminal segue:

mysql> source /home/g/stockrecdb/load_test.sql;
Database changed
ERROR 13 (HY000): Can't get stat of '/home/stockrecdb/data_test.csv' (Errcode: 2)
mysql> 

Nota: se estiver usando LOCAL em LOAD DATA LOCAL INFILE aparece um erro: ERROR 1148 (42000): O comando usado não é permitido com esta versão do MySQL

mysql errors
  • 6 respostas
  • 94921 Views
Martin Hope
Preet Sangha
Asked: 2013-11-11 13:56:21 +0800 CST

Como transferir a propriedade do esquema dbo no SQL Server 2012

  • 19

Eu acidentalmente dei a um usuário a propriedade do esquema db_owner (usando a caixa de seleção na interface do usuário como abaixo) e agora não posso:

  1. Transferir a propriedade para outro usuário
  2. Solte o usuário do banco de dados (embora eu possa excluir o login no SQL Server)

Eu tentei O banco de dados principal possui um esquema no banco de dados e não pode ser descartado.

ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo

E embora tenha sido concluído com sucesso, o usuário ainda tem a propriedade e está acinzentado, então também não consigo fazer isso na interface do usuário.

insira a descrição da imagem aqui

Encontrei uma solução:

Além da resposta de Arron , percebi que executei o comando acima no banco de dados errado (facepalm!). Depois que o banco de dados foi corrigido, o SQL acima e a resposta abaixo funcionaram.

security sql-server-2012
  • 1 respostas
  • 43052 Views
Martin Hope
Jack Douglas
Asked: 2013-09-29 04:49:45 +0800 CST

A cláusula 'returning' pode retornar colunas de origem que não foram inseridas?

  • 19

Aqui está um exemplo mínimo do meu problema do mundo real:

create table t(id serial primary key, rnd double precision);

claro que você pode retornar as colunas inseridas com uma returningcláusula:

with w as (insert into t(rnd) values(random()) returning *)
insert into t(rnd) select random() from w returning *;
/*
| ID |            RND |
|----|----------------|
|  9 | 0.203221440315 |
*/

você também pode retornar um literal:

with w as (insert into t(rnd) values(random()) returning *)
insert into t(rnd) select random() from w returning *, 1.0 dummy;
/*
| ID |            RND | DUMMY |
|----|----------------|-------|
| 11 | 0.594980469905 |     1 |
*/

mas você não pode retornar as colunas de origem:

with w as (insert into t(rnd) values(random()) returning *)
insert into t(rnd) select random() from w returning *, w.rnd;
/*
ERROR: missing FROM-clause entry for table "w": with w as (insert into t(rnd) values(random()) returning *) insert into t(rnd) select random() from w returning *, w.rnd
*/

Existe alguma maneira de sair da cláusula w.rndfinal ?returning

db<>mexa aqui

postgresql postgresql-9.6
  • 1 respostas
  • 10289 Views
Martin Hope
Mike
Asked: 2013-08-15 20:48:14 +0800 CST

Não é possível abrir a tabela mysql/innodb_index_stats [duplicado]

  • 19
Essa pergunta já tem respostas aqui :
InnoDB: Erro: Tabela "mysql".."innodb_table_stats" não encontrada após atualização para mysql 5.6 (2 respostas)
Fechado há 6 anos .

Após uma nova instalação do XAMPP e importação do meu linux live db que está funcionando para o Windows Dev-stage, comecei a encontrar problemas com arquivos INSERT. Todo o resto parece funcionar bem.

Os erros que recebo no mysql_error.logsão:

2013-08-15 12:44:49 16c0 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2013-08-15 12:44:49 16c0 InnoDB: Recalculation of persistent statistics requested for table "sizaradb"."pages" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead.
2013-08-15 12:44:59 16c0 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2013-08-15 12:44:59 16c0 InnoDB: Recalculation of persistent statistics requested for table "sizaradb"."translations" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead.

Não consigo abrir a tabela mysql/innodb_index_statsdo dicionário de dados interno do InnoDB embora o arquivo .frm para a tabela exista

Tentei corrigi-lo pesquisando os erros no Google e tentando ver correções de outras pessoas, mas ainda não está funcionando. Estou trabalhando nisso há 2 dias.

Por favor me ajude a resolver.

mysql innodb
  • 5 respostas
  • 80658 Views
Martin Hope
ahmed
Asked: 2013-07-27 21:41:52 +0800 CST

Como se livrar do erro "conexões máximas do usuário"?

  • 19

Estou usando o MySQLi para meu webapp, mas sempre que quero visitar alguma página específica, recebo mysqli_connect() [function.mysqli-connect]: (42000/1203): User ***_user already has more than 'max_user_connections' active connections.

Já tentei fechar todas as conexões, mas isso não melhora a situação.

Existe uma maneira de saber exatamente quais conexões estão abertas em um determinado momento ou qualquer outro dado útil que possa me ajudar a resolver esse problema?

BTW, estou usando PHP 5.2.17 e MySQL 5.1.

mysql php
  • 1 respostas
  • 146354 Views
Martin Hope
Neil McGuigan
Asked: 2013-07-08 21:17:03 +0800 CST

Como fazer backup incremental a cada hora no Postgres?

  • 19

Tentando fazer um backup incremental de hora em hora de um único servidor Postgres (Win7 64).

Tenho a seguinte configuração em postgresql.conf:

max_wal_senders = 2
wal_level       = archive
archive_mode    = on
archive_command = 'copy "%p" "c:\\postgres\\foo\\%f"'

(reiniciar)

Eu fiz um backup básico compg_basebackup -U postgres -D ..\foo -F t -x

O que criou um base.tararquivo grande na foopasta e adicionou alguns arquivos de 16.384 KB, que presumo serem WALs.

O que não entendo é por que os WALs foonão mudam . Os WALs em data/pg_xlogmudança. O pg não deveria copiá-los? Como decide fazê-lo?

Talvez eu precise definir archive_timeout=3600?

Já vi vários sites (listas de discussão da pg, página do postgres do bacula) que dizem que você precisa chamar pg_start_backup() e pg_stop_backup(), mas acredito que essas não sejam necessárias. Isso é verdade?

Perguntas secundárias:

  1. Com que frequência os WALs data/pg_xlogsão escritos? O que aciona uma gravação?

    Parece atualizar um WAL se eu fizer algum DML \qem psql. Ou edite uma tabela no pgAdmin e feche a janela. Achei que iria escrever no commit.

  2. Melhores Práticas? pg_basebackup uma vez por semana? Arquivar WALs na mesma máquina do PG ou em uma máquina remota?

postgresql backup
  • 2 respostas
  • 21378 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