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
qwaz
Asked: 2014-02-19 07:25:42 +0800 CST

Defina o valor de character_set_client para utf8mb4

  • 16

Estou tentando converter meu banco de dados para utf8mb4seguir este guia . Eu arrumei:

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
init-connect='SET NAMES utf8mb4'
collation_server=utf8mb4_unicode_ci
character_set_server=utf8mb4
skip-character-set-client-handshake

Mas o valor de character_set_cliente character_set_resultsainda não mudará para utf8mb4.

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8               |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8               |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+

O que estou fazendo errado? Como faço para definir esses valores para utf8mb4?

mysql collation
  • 2 respostas
  • 50457 Views
Martin Hope
Stephan
Asked: 2014-02-06 03:55:34 +0800 CST

Como visualizar a consulta de outra sessão em pg_stat_activity sem ser superusuário?

  • 16

Eu tenho um banco de dados Postgresql 9.2. Dois usuários são criados neste banco de dados. Quando executo a seguinte consulta como superusuário, posso ver tudo.

select * from pg_stat_activity

No entanto, é possível obter o mesmo resultado sem estar conectado como superusuário?

Qual privilégio/função devo conceder/criar para ter os resultados que um superusuário pode ver?

postgresql postgresql-9.2
  • 2 respostas
  • 11561 Views
Martin Hope
Jerry Dodge
Asked: 2014-01-31 17:23:31 +0800 CST

SQL Server - diferença entre o nome da instância e o id da instância

  • 16

Estou um pouco confuso com as instâncias do SQL Server. O Nome da Instância e o ID da Instância são propriedades diferentes, mas o ID da Instância tende a ser padronizado para uma versão em maiúsculas do Nome da Instância. A instalação permite que você defina um valor diferente para o ID do que o Nome, embora normalmente sejam os mesmos.

Obviamente, ID refere-se a referência interna e Nome refere-se a referência amigável. Mas quais são as diferenças fundamentais entre os dois? Quando um deve ser usado em vez do outro?

Preciso entender isso ao implantar/instalar o SQL Server 2008 R2 Express nas máquinas servidoras de nossos clientes a partir de um processo de instalação personalizado.

sql-server
  • 4 respostas
  • 84952 Views
Martin Hope
AngryHacker
Asked: 2014-01-24 10:30:36 +0800 CST

O tipo de espera ASYNC_NETWORK_IO é motivo de preocupação?

  • 16

Ao olhar para a lista de procedimentos armazenados que levam muito tempo para serem executados, um se destaca como o que causa mais espera. No entanto, a maior parte dessa espera (81%) é ASYNC_NETWORK_IO e eu sei o porquê: o procedimento armazenado transfere aproximadamente 400 MB de informações.

Na documentação, afirma-se que a causa de ASYNC_NETWORK_IO é que o cliente não consegue acompanhar o fluxo de dados e isso provavelmente é verdade. Não tenho certeza de como fazer o cliente acompanhar, pois tudo o que ele faz é chamar o procedimento armazenado por meio de um ADO.NET e apenas processar o conjunto de dados.

Portanto, com essas informações, devo me preocupar com o tipo de espera ASYNC_NETWORK_IO para esse procedimento? Isso realmente afeta o desempenho do servidor?

Informações adicionais:

  • Estou no service pack 2 do SQL Server 2005.
  • O aplicativo cliente está na mesma caixa do SQL Server (eu sei, eu sei ... mas não posso fazer nada a respeito).
sql-server performance
  • 1 respostas
  • 22368 Views
Martin Hope
Chris L
Asked: 2014-01-23 07:05:19 +0800 CST

Por que a subconsulta usa paralelismo e a junção não?

  • 16

Por que o servidor SQL usa paralelismo ao executar esta consulta que usa uma subconsulta, mas não ao usar uma junção? A versão de junção é executada em série e leva cerca de 30 vezes mais para ser concluída.

Versão de entrada: ~30 segundos

insira a descrição da imagem aqui

Versão da subconsulta: <1 segundo

insira a descrição da imagem aqui

EDIT: Versões XML do plano de consulta:

Versão JOIN

versão SUBQUERY

sql-server join
  • 1 respostas
  • 1382 Views
Martin Hope
cyberwani
Asked: 2014-01-21 02:00:39 +0800 CST

Recupere o banco de dados MySQL da pasta de dados sem ibdata1 dos arquivos ibd

  • 16

Meu diretório WAMP foi excluído acidentalmente por outro usuário. Apenas a pasta de dados no MySQL está disponível. E, nessa apenas pastas de banco de dados (pastas em "\bin\mysql\mysql5.6.12\data\" com nome de bancos de dados) estão disponíveis. Todos os arquivos incluindo " ibdata1 " na raiz de "\bin\mysql\mysql5.6.12\data\" também são excluídos.

As pastas do banco de dados contêm apenas arquivos com as extensões abaixo.

*.frm, *.ibd

e arquivo "db.opt".

Como os bancos de dados podem ser recuperados?

Eu já tentei recuperar bdata1. Mas, incapaz de recuperá-lo. E, algum banco de dados contém MYISAM também.

mysql innodb
  • 1 respostas
  • 60590 Views
Martin Hope
WT_W
Asked: 2014-01-16 23:25:41 +0800 CST

Ajuste automático do valor varchar do SQL Server em comparação igual, mas não como comparação

  • 16

Me deparei com um comportamento interessante no SQL Server (observado em 2005 e 2012) hoje que esperava que alguém pudesse explicar.

Uma consulta fazendo uma comparação usando =um campo NVARCHAR ignorou o espaço à direita na string (ou cortou automaticamente o valor antes da comparação), mas a mesma consulta usando o likeoperador não ignorou o espaço. O agrupamento usado é Latin1_General_CI_AS em 2012.

Considere este SQL Fiddle: http://sqlfiddle.com/#!6/72262/4

Observe que o likeoperador não retorna um resultado para a string de espaço à direita, mas o =operador retorna. Por que é isso?

Pontos de bônus: não consigo replicar isso em um campo VARCHAR, pensei que um espaço seria tratado da mesma forma em ambos os tipos de dados - isso é verdade?

sql-server sql-server-2012
  • 3 respostas
  • 19019 Views
Martin Hope
fejesjoco
Asked: 2014-01-05 06:25:56 +0800 CST

O Oracle não está usando um índice exclusivo para uma chave longa

  • 16

Eu tenho uma tabela com 250 mil linhas em meu banco de dados de teste. (Existem algumas centenas de milhões em produção, podemos observar o mesmo problema lá.) A tabela possui um identificador de string nvarchar2(50), não nulo, com um índice exclusivo (não é o PK).

Os identificadores são compostos por uma primeira parte que possui 8 valores diferentes em meu banco de dados de teste (e cerca de mil em produção), depois um sinal @ e, finalmente, um número, de 1 a 6 dígitos. Por exemplo, pode haver 50 mil linhas que começam com 'ABCD_BGX1741F_2006_13_20110808.xml@' e são seguidas por 50 mil números diferentes.

Quando eu consulto uma única linha com base em seu identificador, a cardinalidade é estimada em 1, o custo é muito baixo, funciona bem. Quando eu consulto mais de uma linha com vários identificadores em uma expressão IN ou uma expressão OR, as estimativas para o índice estão completamente erradas, então uma verificação completa da tabela é usada. Se eu forçar o índice com uma dica, é muito rápido, a varredura completa da tabela é realmente executada uma ordem de magnitude mais lenta (e muito mais lenta na produção). Portanto, é um problema do otimizador.

Como teste, dupliquei a tabela (no mesmo schema+tablespace) com exatamente o mesmo DDL e exatamente o mesmo conteúdo. Eu recriei o índice exclusivo na primeira tabela para uma boa medida e criei exatamente o mesmo índice na tabela clone. eu fiz um DBMS_STATS.GATHER_SCHEMA_STATS('schemaname',estimate_percent=>100,cascade=>true);. Você pode até ver que os nomes dos índices são consecutivos. Então agora a única diferença entre as duas tabelas é que a primeira foi carregada em ordem aleatória por um longo período de tempo, com blocos espalhados no disco (em um tablespace junto com várias outras tabelas grandes), a segunda foi carregada como uma em lote INSERIR-SELECIONAR. Fora isso, não consigo imaginar nenhuma diferença. (A tabela original foi reduzida desde a última grande exclusão e não houve uma única exclusão depois disso.)

Aqui estão os planos de consulta para o doente e a tabela clone (as strings sob o pincel preto são as mesmas em toda a imagem e também sob o pincel cinza.):

planos de consulta

(Neste exemplo, há 1867 linhas que começam com o identificador que é preto escovado. Uma consulta de 2 linhas produz uma cardinalidade de 1867*2, uma consulta de 3 linhas produz uma cardinalidade de 1867*3, etc. Não é possível seja uma coincidência, a Oracle parece não se importar com o final dos identificadores.)

O que poderia causar esse comportamento? Obviamente, seria muito caro recriar a tabela em produção.

USER_TABLES: http://i.stack.imgur.com/nDWze.jpg USER_INDEXES : http://i.stack.imgur.com/DG9um.jpg Alterei apenas o esquema e o nome do tablespace. Você pode ver que os nomes da tabela e do índice são iguais aos da captura de tela do plano de consulta.

oracle oracle-11g-r2
  • 3 respostas
  • 2277 Views
Martin Hope
brl8
Asked: 2014-01-03 10:30:09 +0800 CST

Erro do SQL Server 2008 R2: 15023, usuário, grupo ou função já existe

  • 16

Eu tenho um banco de dados de teste com o qual estou tendo problemas de permissão.
Não consigo acessar o banco de dados de relatórios e a documentação de ajuda do aplicativo diz para fazer o seguinte:

Resolution: 

1. Launch the SQL Server Management Studio and connect to the database server(s) hosting   the Vision and Reporting Server databases. 
2. Expand the security folder. 
3. Select logins and right click on the <username> user and choose properties. 
4. Click the User Mapping tab 
5.Make sure the following databases are selected in the Users mapped to this Login:

    ReportServer
    ReportServerTempDB
    Your Vision databases
    This maps the login/user to the respective databases.
6. As you select each database (including your Vision database), select the db_owner role in the Database role membership for: section. You must select this option for each database.

Quando faço isso, recebo o seguinte erro:

"Create failed for user '<servername>\<username>'.  User, group, or role '<servername>\<username>' already exists in the current database. (Microsoft SQL Server, Error: 15023)"

Eu pesquisei esse erro e tentei o seguinte comando em cada banco de dados:

 ALTER USER [<username>] WITH LOGIN = [<username>] 

A mensagem indicou que os comandos foram concluídos com êxito, mas ainda estou recebendo o erro acima quando tento mapear cada banco de dados conforme as instruções acima.

o que estou perdendo?

Por comentário de Kin (obrigado) eu tentei isso: - Cliquei com o botão direito do mouse no usuário e selecionei: Script Login As > Drop and Create To > New query window. - Executei a consulta resultante e tentei mapear as funções de usuário selecionando os outros dois bancos de dados e db_owner novamente, mas ainda estou recebendo a mesma mensagem de erro acima.

Pensamentos??

sql-server sql-server-2008-r2
  • 4 respostas
  • 62850 Views
Martin Hope
Julia McGuigan
Asked: 2013-11-19 12:29:05 +0800 CST

Configurando permissões de usuário para diferentes esquemas do SQL Server

  • 16

Eu preciso limitar o acesso a um usuário específico, mas eles ainda precisam ver os dados nas tabelas de propriedade do dbo.

Estou tentando fazer o seguinte:

  1. O esquema dbo funciona normalmente, tem acesso a tudo
  2. schema1 schema tem acesso apenas a objetos schema1
  3. se uma visualização do esquema1 ou procedimento armazenado acessar dados em tabelas de propriedade do dbo, a cadeia de permissões apropriadamente
  4. user1 tem acesso ao schema1 e nada mais; exceto no caso de #3

Aqui está o que eu tentei:

  1. Crie um usuário user1 mapeado para um login de teste com uma senha aleatória
  2. Criou algumas tabelas no esquema dbo com alguns dados de teste nelas
  3. Criado um esquema schema1
  4. Criou um schema1.get_profiles que seleciona a partir de uma visualização chamada schema1.profiles que acessa dados em dbo.people, dbo.taglinks e dbo.tags

No entanto, usando a seguinte instrução enquanto estiver conectado como user1:

EXEC get_profiles 1

resulta em:

The SELECT permission was denied on the object 'tags', database 'schema_test', schema 'dbo'.

Eu tentei WITH EXECUTE AS OWNERe não consigo entender como o "encadeamento de propriedade" deve funcionar.

eu também tentei

GRANT EXECUTE ON SCHEMA::schema1 TO user1
GRANT INSERT ON SCHEMA::schema1 TO user1
GRANT SELECT ON SCHEMA::schema1 TO user1
GRANT UPDATE ON SCHEMA::schema1 TO user1
GRANT VIEW DEFINITION ON SCHEMA::schema1 TO user1

mas recebo o seguinte erro (apesar de ser um usuário com acesso de nível dbo):

Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.

O que eu preciso é que o usuário1 possa acessar os dados por meio dos procedimentos armazenados que eu forneço, e nada mais.

Além disso, isso se destina a eventualmente residir em um banco de dados SQL Azure existente, mas estou testando primeiro em um banco de dados fictício local.

sql-server sql-server-2008
  • 1 respostas
  • 83703 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