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
Elias
Asked: 2012-09-23 06:22:05 +0800 CST

Restringir a atualização em determinadas colunas. Permitir apenas que o procedimento armazenado atualize essas colunas

  • 19

Tenho colunas de preços sensíveis que gostaria de atualizar apenas por meio de um procedimento armazenado. Eu gostaria que todos os códigos ou tentativas manuais de alterar valores nessas colunas de preço falhem se não estiver usando os procedimentos armazenados projetados para atualizá-lo.

Estou pensando em implementar isso usando gatilhos e uma tabela de token. A ideia que estou considerando é ter uma tabela de tokens. os procedimentos armazenados terão que primeiro inserir valores na tabela de tokens. Em seguida, atualize as colunas de preço. O gatilho de atualização verificará se o token existe na tabela de tokens para a linha atualizada. Se encontrado, continuaria. se o token não for encontrado, ele lançará uma exceção e fará com que a transação de atualização falhe.

Existe uma maneira boa/melhor de implementar essa restrição?

sql-server sql-server-2012
  • 3 respostas
  • 29924 Views
Martin Hope
Anonymous Maximus
Asked: 2012-07-29 13:15:17 +0800 CST

Por que SELECT 1/2 retorna 0?

  • 19

Como o título diz. Eu até tentei, SELECT CONVERT(NUMERIC, 1/2)que também retornou 0.

Estou usando o SQLServer 2008.

sql-server sql-server-2008
  • 2 respostas
  • 8407 Views
Martin Hope
giorgio79
Asked: 2012-05-30 00:45:31 +0800 CST

mysql não inicia após aumentar innodb_buffer_pool_size e innodb_log_file_size

  • 19

Estou seguindo esta solução aqui https://stackoverflow.com/questions/3927690/howto-clean-a-mysql-innodb-storage-engine/4056261#comment14041132_4056261 e tentei aumentar meu innodb_buffer_pool_sizepara 4G e depois 1G (também 1024M) em além do tamanho do arquivo de log, mas o mysql não iniciará com esses valores. Se eu colocá-lo de volta para 512M, o mysql começa bem.

Como posso resolver isso? Meu servidor é de 16 GB e, de acordo com o Webmin sysinfo:

Real memory 15.62 GB total, 3.13 GB used

Enquanto isso, encontrei o log de erros também:

120529 10:29:32 mysqld_safe mysqld do arquivo pid /var/run/mysqld/mysqld.pid terminou

120529 10:29:33 mysqld_safe Iniciando o daemon mysqld com bancos de dados de /var/lib/mysql

120529 10:29:33 [Nota] Plugin 'FEDERATED' está desabilitado.

120529 10:29:33 InnoDB: O heap de memória do InnoDB está desabilitado

120529 10:29:33 InnoDB: Mutexes e rw_locks usam builtins atômicos GCC

120529 10:29:33 InnoDB: Tabelas compactadas usam zlib 1.2.3

120529 10:29:33 InnoDB: Usando AIO nativo do Linux

120529 10:29:33 InnoDB: Inicializando o pool de buffers, tamanho = 1,0 G

120529 10:29:33 InnoDB: Inicialização completa do buffer pool

InnoDB: Erro: arquivo de log ./ib_logfile0 é de tamanho diferente 0 134217728 bytes

InnoDB: do que especificado no arquivo .cnf 0 268435456 bytes!

mysql innodb
  • 5 respostas
  • 52290 Views
Martin Hope
Olivier Pons
Asked: 2012-05-01 06:32:12 +0800 CST

Projeto de banco de dados: como lidar com o problema de "arquivo"?

  • 19

Tenho certeza de que muitos aplicativos, aplicativos críticos, bancos e assim por diante fazem isso diariamente.

A ideia por trás de tudo isso é:

  • todas as linhas devem ter um histórico
  • todos os links devem permanecer coerentes
  • deve ser fácil fazer solicitações para obter colunas "atuais"
  • os clientes que compraram coisas obsoletas ainda devem ver o que compraram, mesmo que este produto não faça mais parte do catálogo

e assim por diante.

Aqui está o que eu quero fazer e explicarei os problemas que estou enfrentando.

Todas as minhas tabelas terão essas colunas:

  • id
  • id_origin
  • date of creation
  • start date of validity
  • start end of validity

E aqui estão as ideias para operações CRUD:

  • create = inserir nova linha com id_origin= id, date of creation=now, start date of validity=now, end date of validity=null (= significa que é o registro ativo atual)
  • atualizar =
    • read = ler todos os registros com end date of validity==null
    • atualize o registro "atual" end date of validity=nulo com end date of validity=agora
    • crie um novo com os novos valores e end date of validity=null (= significa que é o registro ativo atual)
  • delete = atualize o registro "atual" end date of validity=null com end date of validity=agora

Então aqui está o meu problema: com associações muitos-para-muitos. Vamos dar um exemplo com valores:

  • Tabela A (id = 1, id_origin = 1, início=agora, fim=nulo)
  • Tabela A_B (início=agora, fim=nulo, id_A = 1, id_B = 48)
  • Tabela B (id = 48, id_origin = 48, início=agora, fim=nulo)

Agora eu quero atualizar a tabela A, registro id=1

  • Eu marco id de registro=1 com end=agora
  • Eu insiro um novo valor na tabela A e... caramba, perdi minha relação A_B , a menos que eu duplique a relação também... isso terminaria em uma tabela:

  • Tabela A (id = 1, id_origin = 1, início=agora, fim=agora+8mn)

  • Tabela A (id = 2, id_origin = 1, start=now+8mn, end=null)
  • Tabela A_B (início=agora, fim=nulo, id_A = 1, id_B = 48)
  • Tabela A_B (início=agora, fim=nulo, id_A = 2, id_B = 48)
  • Tabela B (id = 48, id_origin = 48, início=agora, fim=nulo)

E... bem, eu tenho outro problema: a relação A_B: devo marcar (id_A = 1, id_B = 48) como obsoleto ou não (A - id=1 é obsoleto, mas não B - 48)?

Como lidar com isso?

Tenho que projetar isso em grande escala: produtos, parceiros e assim por diante.

Qual é a sua experiência sobre isso? Como você faria (como você fez)?

-- Editar

Eu encontrei este artigo muito interessante , mas não lida adequadamente com "obsolescência em cascata" (= o que estou perguntando na verdade)

database-design
  • 4 respostas
  • 3864 Views
Martin Hope
newenglander
Asked: 2012-04-13 07:06:32 +0800 CST

O que significa NVL?

  • 19

O que NVLsignifica? Estou falando sobre a função Oracle e Informix (talvez algumas outras também) usadas para filtrar valores não NULL dos resultados da consulta (semelhante a COALESCEoutros bancos de dados).

oracle functions
  • 3 respostas
  • 19266 Views
Martin Hope
newbie14
Asked: 2012-04-01 19:44:49 +0800 CST

O innodb_file_per_table é aconselhável?

  • 19

Temos um aplicativo em que apenas uma tabela crescerá em milhões de linhas, mas o restante ficará um pouco abaixo de um milhão. Então, qual é o conselho que devemos usar innodb_file_per_table ou deixar apenas um .ibd? Eu li alguns artigos dizendo para não ir com isso, pois você precisa de mais acesso ao disco quando houver junções a serem executadas? Teremos junção entre esta tabela e outras para fins de geração de relatórios.

mysql innodb
  • 3 respostas
  • 18378 Views
Martin Hope
newuser
Asked: 2012-03-27 06:26:29 +0800 CST

Diferenças entre "Chave exclusiva" e "Chave primária"

  • 19

Quais são as principais diferenças entre Unique Keye Primary Keyno MySQL?

mysql primary-key
  • 4 respostas
  • 22866 Views
Martin Hope
Nathan Ridley
Asked: 2012-02-28 13:25:49 +0800 CST

Banco de dados SQL Server em um SSD - alguma vantagem em um arquivo separado para cada tabela?

  • 19

Estou criando um banco de dados no qual haverá cerca de 30 tabelas, com cada tabela contendo dezenas de milhões de linhas e cada tabela contendo uma única coluna importante e uma coluna de chave primária/estrangeira para maximizar a eficiência da consulta em face de pesadas atualizações e inserções e fazem uso intenso de índices clusterizados. Duas das tabelas conterão dados textuais de comprimento variável, com uma delas contendo centenas de milhões de linhas, mas o restante conterá apenas dados numéricos.

Como eu realmente quero espremer até a última gota de desempenho do hardware que tenho disponível (cerca de 64 GB de RAM, um SSD muito rápido e 16 núcleos), pensei em permitir que cada mesa tenha seu próprio arquivo para que, não importa se Estou juntando em 2, 3, 4, 5 ou mais tabelas, cada tabela sempre será lida usando um thread separado e a estrutura de cada arquivo será alinhada com o conteúdo da tabela, o que, com sorte, minimizaria a fragmentação e a tornaria mais rápida para o SQL Server adicionar ao conteúdo de qualquer tabela.

Uma ressalva, estou preso no SQL Server 2008 R2 Web Edition . O que significa que não posso usar o particionamento horizontal automático, o que descarta isso como uma melhoria de desempenho.

O uso de um arquivo por tabela realmente maximizará o desempenho ou estou ignorando as características internas do mecanismo do SQL Server que tornariam isso redundante?

Em segundo lugar, se usar um arquivo por tabela é vantajoso, por que create tablesó me dá a opção de alocar a tabela para um grupo de arquivos e não para um arquivo lógico específico? Isso exigiria que eu criasse um grupo de arquivos separado para cada arquivo em meu cenário, o que me sugere que talvez o SQL Server não esteja prevendo as vantagens que presumo viriam de fazer o que estou propondo.

sql-server sql-server-2008
  • 4 respostas
  • 13359 Views
Martin Hope
Selvakumar P
Asked: 2012-02-23 01:25:58 +0800 CST

Tirando o despejo do MySQL de outra máquina

  • 19

Eu tenho um banco de dados MySQL na máquina A e quero acessar o mysqldump da máquina B.

Ambas as máquinas estão rodando no Linux e também tenho as credenciais de ambas, mas não consigo acessar o mysqldump. O que posso tentar?

mysql mysqldump
  • 4 respostas
  • 68917 Views
Martin Hope
Renats Stozkovs
Asked: 2012-02-13 19:50:51 +0800 CST

Impondo a integridade do banco de dados

  • 19

Isso faria sentido para que o aplicativo reforçasse a integridade do banco de dados em vez de ter chaves estrangeiras, verificar restrições etc.?

Quanta melhoria de desempenho se pode esperar por não impor a integridade do banco de dados por meio de ferramentas internas de banco de dados?

sql-server database-design
  • 5 respostas
  • 421 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