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
Jonathan Allen
Asked: 2017-11-04 15:29:34 +0800 CST

Ajuda para instalar o SQL Server 2017 - a instalação do VS Shell falhou com o código de saída 1638

  • 171

Alguma sugestão de como lidar com esse erro:

TITLE: Microsoft SQL Server 2017 Setup
------------------------------

The following error has occurred:

VS Shell installation has failed with exit code 1638.

For help, click: https://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20SQL%20Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=14.0.1000.169&EvtType=0x5B39C8B9%25401434%25403

------------------------------
BUTTONS:

OK
------------------------------

Este é um novo laptop em execução

  • SQL Server 2016 expresso
  • Visual Studio 2017
  • SSMS 2017

Eu tentei desinstalar qualquer coisa relacionada ao SQL Server ou Visual Studio.

Log: [3500:3970][2017-11-03T16:25:20]e000: Erro 0x80070666: Não é possível instalar um produto quando uma versão mais recente está instalada.

Detailed results:
  Feature:                       Full-Text and Semantic Extractions for Search
  Status:                        Failed
  Reason for failure:            An error occurred for a dependency of the feature causing the setup process for the feature to fail.
  Next Step:                     Use the following information to resolve the error, and then try the setup process again.
  Component name:                Microsoft Visual C++ 2015 Redistributable
  Component error code:          1638
  Component log file:            C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\Log\20171103_162358\VCRuntime140_x64_Cpu64_1.log
  Error description:             VS Shell installation has failed with exit code 1638.
  Error help link:               https://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=14.0.1000.169&EvtType=VCRuntime140_x64%40Install%400x1638

  Feature:                       Database Engine Services
  Status:                        Failed
  Reason for failure:            An error occurred for a dependency of the feature causing the setup process for the feature to fail.
  Next Step:                     Use the following information to resolve the error, and then try the setup process again.
  Component name:                Microsoft Visual C++ 2015 Redistributable
  Component error code:          1638
  Component log file:            C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\Log\20171103_162358\VCRuntime140_x64_Cpu64_1.log
  Error description:             VS Shell installation has failed with exit code 1638.
  Error help link:               https://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=14.0.1000.169&EvtType=VCRuntime140_x64%40Install%400x1638
sql-server installation
  • 4 respostas
  • 174819 Views
Martin Hope
Amelio Vazquez-Reina
Asked: 2014-02-06 13:16:56 +0800 CST

Como obter o nome do banco de dados atual de dentro do PostgreSQL?

  • 174

Usar \c <database_name>no PostgreSQL conectará ao banco de dados nomeado.

Como o nome do banco de dados atual pode ser determinado?

Entrando:

my_db> current_database();

produz:

ERROR:  syntax error at or near "current_database"
LINE 1: current_database();
postgresql psql
  • 5 respostas
  • 227634 Views
Martin Hope
Johntron
Asked: 2013-06-21 06:18:32 +0800 CST

Boa explicação do comportamento em cascata (ON DELETE/UPDATE)

  • 149

Não crio esquemas todos os dias, mas quando faço isso, tento configurar atualizações/exclusões em cascata corretamente para facilitar a administração. Eu entendo como as cascatas funcionam, mas nunca consigo lembrar qual tabela é qual.

Por exemplo, se eu tiver duas tabelas - Parente Child- com uma chave estrangeira nessas Childreferências Parente tiver ON DELETE CASCADE, quais registros acionam uma cascata e quais registros são excluídos pela cascata? Meu primeiro palpite seria que os Childregistros são excluídos quando Parentos registros são excluídos, já que Childos registros dependem dos Parentregistros, mas o ON DELETEé ambíguo; pode significar excluir o Parentregistro quando o Childregistro for excluído ou pode significar excluir o Childregistro quando o Parentfor excluído. Então qual é?

Eu gostaria que a sintaxe fosse ON PARENT DELETE, CASCADE, ON FOREIGN DELETE, CASCADEou algo semelhante para remover a ambiguidade. Alguém tem algum mnemônico para lembrar disso?

mysql foreign-key
  • 5 respostas
  • 280622 Views
Martin Hope
Kshitiz Sharma
Asked: 2013-04-23 21:24:46 +0800 CST

Como formatar corretamente a saída do shell sqlite?

  • 139

Se eu for mysql shelle digitar SELECT * FROM users, recebo -

+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| USERID | NAME           | EMAILID                         | PASSWORD | USER_TYPE | CONTACT_ID_FKUSERS | COMPANY_ID_FKUSERS |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
|    137 | X              | b@cc.com                        | #        | ADMIN     |                166 |                110 |
|    138 | Kshitiz        | ksharma@aaa.com                 | asdf     | ADMIN     |                167 |                111 |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+

Oracle sqlplusmostra -

USERID     NAME  EMAILID    PASSWORD   USER_TYPE  CONTACT_ID_FKUSERS COMPANY_ID_FKUSERS
---------- ----- ---------- ---------- ---------- ------------------ ------------------
137        X     b@cc.com   #          ADMIN                     166                110
137        X     b@cc.com   #          ADMIN                     166                110

Sqlite shellmostra -

137|X|b@cc.com|#|ADMIN|166|110
138|Kshitiz|ksharma@aaa.com|asdf|ADMIN|167|111
  1. Existe uma maneira de embelezar a saída de sqlite shell?
  2. Existe um shell alternativo que seja melhor que a distribuição padrão? (somente clientes CLI)
sqlite
  • 9 respostas
  • 91651 Views
Martin Hope
Stephane Rolland
Asked: 2013-04-10 11:07:03 +0800 CST

Otimizando consultas em um intervalo de carimbos de data/hora (duas colunas)

  • 140

Eu uso o PostgreSQL 9.1 no Ubuntu 12.04.

Preciso selecionar registros dentro de um intervalo de tempo: minha tabela time_limitstem dois timestampcampos e uma integerpropriedade. Existem colunas adicionais na minha tabela real que não estão envolvidas com esta consulta.

create table (
   start_date_time timestamp,
   end_date_time timestamp, 
   id_phi integer, 
   primary key(start_date_time, end_date_time,id_phi);

Esta tabela contém aproximadamente 2 milhões de registros.

Consultas como as seguintes levavam muito tempo:

select * from time_limits as t 
where t.id_phi=0 
and t.start_date_time <= timestamp'2010-08-08 00:00:00'
and t.end_date_time   >= timestamp'2010-08-08 00:05:00';

Então tentei adicionar outro índice - o inverso do PK:

create index idx_inversed on time_limits(id_phi, start_date_time, end_date_time);

Fiquei com a impressão de que o desempenho melhorou: O tempo de acesso aos registros no meio da tabela parece ser mais razoável: algo entre 40 e 90 segundos.

Mas ainda são várias dezenas de segundos para valores no meio do intervalo de tempo. E mais duas vezes ao mirar no final da mesa (cronologicamente falando).

Tentei explain analyzepela primeira vez obter este plano de consulta:

 Bitmap Heap Scan on time_limits  (cost=4730.38..22465.32 rows=62682 width=36) (actual time=44.446..44.446 rows=0 loops=1)
   Recheck Cond: ((id_phi = 0) AND (start_date_time <= '2011-08-08 00:00:00'::timestamp without time zone) AND (end_date_time >= '2011-08-08 00:05:00'::timestamp without time zone))
   ->  Bitmap Index Scan on idx_time_limits_phi_start_end  (cost=0.00..4714.71 rows=62682 width=0) (actual time=44.437..44.437 rows=0 loops=1)
         Index Cond: ((id_phi = 0) AND (start_date_time <= '2011-08-08 00:00:00'::timestamp without time zone) AND (end_date_time >= '2011-08-08 00:05:00'::timestamp without time zone))
 Total runtime: 44.507 ms

Veja os resultados em depesz.com.

O que eu poderia fazer para otimizar a pesquisa? Você pode ver todo o tempo gasto verificando as duas colunas de carimbos de data/hora uma vez id_phidefinido como 0. E não entendo a grande varredura (60 mil linhas!) nos carimbos de data e hora. Eles não são indexados pela chave primária e idx_inversedeu adicionei?

Devo mudar de tipos de carimbo de data/hora para outra coisa?

Li um pouco sobre os índices GIST e GIN. Eu entendo que eles podem ser mais eficientes em certas condições para tipos personalizados. É uma opção viável para o meu caso de uso?

postgresql index
  • 4 respostas
  • 145504 Views
Martin Hope
Tom Hunter
Asked: 2012-01-07 07:57:00 +0800 CST

Os desenvolvedores devem poder consultar bancos de dados de produção?

  • 171

Os desenvolvedores devem receber permissão para consultar ( SELECT/somente leitura) bancos de dados de produção? No local anterior em que trabalhei, a equipe de desenvolvimento tinha o db_datareaderpapel; onde trabalho agora, a equipe de desenvolvimento não consegue nem se conectar à instância de produção.

Uma das instâncias de teste é uma cópia da produção restaurada de um backup de produção uma vez por semana, portanto, não há problemas com os desenvolvedores realmente vendo os dados.

Quais são as boas razões para não permitir que os desenvolvedores consultem a produção (exceto simplesmente não querer que eles tenham acesso para ler dados confidenciais)?

sql-server best-practices
  • 19 respostas
  • 56532 Views
Martin Hope
Manuel Leduc
Asked: 2011-12-28 01:10:21 +0800 CST

Restrição exclusiva de várias colunas do PostgreSQL e valores NULL

  • 144

Tenho uma tabela assim:

create table my_table (
    id   int8 not null,
    id_A int8 not null,
    id_B int8 not null,
    id_C int8 null,
    constraint pk_my_table primary key (id),
    constraint u_constrainte unique (id_A, id_B, id_C)
);

E eu quero (id_A, id_B, id_C)ser distinto em qualquer situação. Portanto, as duas inserções a seguir devem resultar em um erro:

INSERT INTO my_table VALUES (1, 1, 2, NULL);
INSERT INTO my_table VALUES (2, 1, 2, NULL);

Mas não se comporta como esperado pois de acordo com a documentação, dois NULLvalores não são comparados entre si, então ambas as inserções passam sem erro.

Como posso garantir minha restrição exclusiva, mesmo que id_Cpossa ser NULLnesse caso? Na verdade, a verdadeira questão é: posso garantir esse tipo de exclusividade em "sql puro" ou tenho que implementá-lo em um nível superior (java no meu caso)?

postgresql constraint
  • 3 respostas
  • 145497 Views
Martin Hope
Jake Wilson
Asked: 2011-10-20 07:50:08 +0800 CST

Vantagens e desvantagens de usar tipos ENUM vs Integer?

  • 143

Digamos que em alguma tabela aleatória, você tenha uma coluna chamada status . Seus valores do mundo real seriam habilitados ou desabilitados .

É melhor que o tipo de dados desta coluna seja um int/bool (1 ou zero) ou use ENUMcom os valores sendo enablede disabled? Quais são as vantagens ou desvantagens?

Digamos que em vez de apenas dois status válidos, você tenha 4 ou 10 ou até mais? As vantagens e desvantagens oscilam para um lado ou para o outro à medida que o número de valores exigidos aumenta?

mysql database-design
  • 3 respostas
  • 76518 Views
Martin Hope
gbn
Asked: 2011-09-13 06:59:54 +0800 CST

Possível fazer o MySQL usar mais de um núcleo?

  • 142

Fui presenteado com alguns servidores MySQL dedicados que nunca usam mais do que um único núcleo. Eu sou mais desenvolvedor do que DBA para MySQL, então preciso de ajuda

Configurar

Os servidores são bastante robustos com uma carga do tipo OLAP/DataWarehouse (DW):

  • Primário: 96 GB de RAM, 8 núcleos + matriz RAID 10 única
  • Teste: 32 GB de RAM com 4 núcleos
  • O maior banco de dados é de 540 GB, o total é de cerca de 1,1 TB e principalmente tabelas InnoDB
  • Solaris 10 Intel-64
  • MySQL 5.5.x

Nota: O maior DB é o replicado do servidor OLTP DR e o DW é carregado a partir dele. Não é um DW completo: dura apenas 6 meses a 6 semanas, por isso é menor que o OLTP DB.

Observações em um servidor de teste

  • 3 conexões separadas
  • cada um tem um concorrente (e diferente)ALTER TABLE...DROP KEY...ADD INDEX
  • as 3 tabelas têm 2,5, 3,8 e 4,5 milhões de linhas
  • O uso da CPU vai até 25% (um núcleo está no máximo) e não mais
  • os 3 ALTERs levam de 12 a 25 minutos (um único no menor leva 4,5)

Perguntas

  1. Qual configuração ou patch é necessário para permitir que mais de um núcleo seja usado?
    Ou seja, por que o MySQL não usa todos os núcleos disponíveis? (como outros RDBMS)
  2. É uma consequência da replicação?

Outras notas

  • Eu entendo a diferença entre um "thread" de RDBMS e um "thread" de SO
  • Eu não estou perguntando sobre qualquer forma de paralelismo
  • Algumas das variáveis ​​do sistema para InnoDB e threads são sub-ótimas
    (procurando uma vitória rápida)
  • A curto prazo, não consigo alterar o layout do disco
  • O SO pode ser ajustado, se necessário
  • Uma única ALTER TABLE na menor mesa leva 4,5 minutos (chocante IMO)

Editar 1

  • innodb_thread_concurrency é definido como 8 em ambos. Sim, está errado, mas não fará o MySQL usar vários núcleos
  • innodb_buffer_pool_size é 80 GB no primário, 10 GB em um teste (outra instância é encerrada). Isso está bem por enquanto.
  • innodb_file_per_table = ATIVADO

Editar 2

  • innodb_flush_log_at_trx_commit = 2
  • innodb_use_sys_malloc = ATIVADO
  • innodb_flush_method deve ser O_DIRECT (mas SHOW VARIABLES não mostra isso)
  • innodb_doublewrite = OFF
  • Sistema de arquivos = ZFS (E meu sysadmin encontrou isto: http://blogs.oracle.com/realneel/entry/mysql_innodb_zfs_best_practices )

Testar

  • innodb_flush_method não está aparecendo como O_DIRECT quando deveria estar
  • seguirá as configurações do RolandoMySQLDBA

Deixe-me saber se eu perdi alguma coisa importante

Felicidades

Atualizar

Alterado innodb_flush_method + 3 x configurações de thread na resposta do RolandoMySQLDBA
Resultado: > 1 núcleo usado para os testes = resultado positivo

mysql performance
  • 5 respostas
  • 237464 Views
Martin Hope
BrunoLM
Asked: 2011-01-05 23:46:34 +0800 CST

Guid vs INT - Qual é melhor como chave primária?

  • 154

Estou lendo em torno de razões para usar ou não Guide int.

inté menor, mais rápido, fácil de lembrar, mantém uma sequência cronológica. E quanto ao Guid, a única vantagem que encontrei é que ele é único. Nesse caso, a Guidseria melhor que e inte por quê?

Pelo que vi, intnão tem falhas a não ser pelo número limite, que em muitos casos são irrelevantes.

Por que exatamente foi Guidcriado? Na verdade, acho que tem um propósito diferente de servir como chave primária de uma tabela simples. (Qualquer exemplo de um aplicativo real usando Guidpara algo?)

( Guid = UniqueIdentifier ) tipo no SQL Server

sql-server performance
  • 6 respostas
  • 136627 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