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
Riley Major
Asked: 2016-05-26 12:02:32 +0800 CST

Como faço para definir uma string Unicode / NVARCHAR do SQL Server para um emoji ou caractere suplementar?

  • 34

Eu quero definir uma variável de string Unicode para um caractere específico com base em seu ponto de código Unicode.

Desejo usar um ponto de código além de 65535, mas o banco de dados SQL Server 2008 R2 tem um agrupamento de SQL_Latin1_General_CP1_CI_AS.

De acordo com a documentação do NCHAR da Microsoft , a NCHARfunção recebe um inteiro da seguinte forma:

expressão_inteiro

Quando o agrupamento do banco de dados não contém o sinalizador de caractere suplementar (SC), esse é um número inteiro positivo de 0 a 65535 (0 a 0xFFFF). Se um valor fora desse intervalo for especificado, NULL será retornado. Para obter mais informações sobre caracteres suplementares, consulte Collation and Unicode Support.

Quando o agrupamento do banco de dados oferece suporte ao sinalizador de caractere suplementar (SC), esse é um número inteiro positivo de 0 a 1114111 (0 a 0x10FFFF). Se for especificado um valor fora desse intervalo, será retornado NULL.

Então este código:

SELECT NCHAR(128512);

Retorna NULLneste banco de dados.

Eu gostaria que ele retornasse o mesmo que isso:

SELECT N'?';

Como posso definir uma variável de string Unicode (por exemplo, nvarchar) para um emoji usando código (sem usar o caractere emoji real) em um banco de dados onde o agrupamento "não contém o sinalizador de caractere suplementar (SC)"?

Lista completa de pontos de código Unicode emoji

(Em última análise, quero que qualquer personagem funcione. Apenas escolhi emoji para facilitar a referência.)

(Embora o servidor seja o SQL Server 2008 R2, também estou curioso sobre as soluções para versões posteriores.)

Supondo que não há como, eu poderia fazer referência a uma função definida pelo usuário em linha em outro banco de dados que tivesse um agrupamento apropriado?

Como faço para encontrar um agrupamento que tenha o sinalizador "caractere suplementar"?

Isso não retorna nenhum registro em nosso servidor:

SELECT * FROM sys.fn_helpcollations() 
WHERE name LIKE 'SQL%[_]SC';

Parece que o SQL Server 2012 foi introduzido Latin1_General_100_CI_AS_SC, o que funcionaria. Você pode instalar agrupamentos em instâncias mais antigas?

Referências de agrupamento:

  • Resposta para Qual é a diferença entre char, nchar, varchar e nvarchar no SQL Server?
  • Informações de agrupamento de caracteres suplementares da Microsoft
  • Lista de agrupamentos do SQL Server 2008 R2 da Microsoft

Existe uma explicação de por que, independentemente do agrupamento, o SQL Server pode entender e lidar com os caracteres estendidos, exceto da perspectiva de NCHAR?

sql-server t-sql
  • 1 respostas
  • 43026 Views
Martin Hope
Matthew Verstraete
Asked: 2016-04-16 10:38:34 +0800 CST

O que OPTION FAST na instrução SELECT faz?

  • 34

Eu fiz algumas pesquisas sobre o que a OPTION (FAST XXX)dica de consulta faz dentro de uma SELECTinstrução e ainda estou confuso sobre isso. De acordo com o MSDN:

Especifica que a consulta é otimizada para recuperação rápida das primeiras number_rows. Este é um número inteiro não negativo. Depois que as primeiras number_rows são retornadas, a consulta continua a execução e produz seu conjunto de resultados completo.

Para mim isso não faz muito sentido, mas basicamente a consulta pode obter as primeiras linhas XXX muito rápido e o restante na velocidade normal?

A consulta do Microsoft Dynamics que me fez pensar nisso é:

select pjproj.project,pjproj.project_desc,pjproj.customer,pjproj.cpnyid
from pjproj WITH (NOLOCK)
where project like  '%'
order by project OPTION(FAST 500)

Alguém pode explicar exatamente o que essa dica de consulta está fazendo e sua vantagem sobre não usá-la?

sql-server t-sql
  • 3 respostas
  • 46433 Views
Martin Hope
dakini
Asked: 2015-09-23 12:03:59 +0800 CST

JSONB com indexação vs. hstore

  • 34

Estou tentando decidir sobre o design do banco de dados, com o mínimo possível de suposições (sobre como o aplicativo da Web realmente evolui) neste estágio.

Como primeiro passo, entendendo que JOINS são caros, estou considerando um pequeno número de tabelas monolíticas em oposição a um grande número de tabelas menores normalizadas. Como segundo ponto, estou confuso entre usar hstore vs. tabelas regulares vs. JSONB (com indexação GiST).

AFAIK (sinta-se à vontade para corrigir):

  1. Geralmente, no Postgres, hstore é conhecido por ter um desempenho melhor do que outros tipos de dados. Esta apresentação do FOSDEM PGDAY tem algumas estatísticas interessantes (na segunda metade dos slides). https://wiki.postgresql.org/images/b/b4/Pg-as-nosql-pgday-fosdem-2013.pdf

  2. Uma vantagem com hstore é a indexação rápida (GiN ou GiST). No entanto, com indexação JSONB, GiN e GiST também pode ser aplicada a dados JSON.

  3. Este blog de um profissional do 2º Quadrante diz "Neste ponto provavelmente vale a pena substituir o uso do hstore pelo jsonb em todos os novos aplicativos" (vá até o final): http://blog.2ndquadrant.com/postgresql-anti-patterns-unnecessary -jsonhstore-dynamic-columns/

Então, gostaria de decidir o seguinte:

  1. Para a parte principal (estruturada) dos dados: deve ir em algumas tabelas relacionais (relativamente grandes com muitas colunas) ou deve ser um número de armazenamentos de valor-chave usando hstore?
  2. Para os dados ad hoc (contribuídos pelo usuário/não estruturados), eles devem estar em armazenamentos de valor de chave JSON ou ad hoc em hstore (com as chaves armazenadas em uma das principais tabelas relacionais)?
database-design postgresql
  • 1 respostas
  • 24273 Views
Martin Hope
NumberFour
Asked: 2015-04-23 10:16:14 +0800 CST

Posso selecionar dados inseridos na mesma transação não confirmada?

  • 34

Talvez esta seja uma pergunta idiota para iniciantes, mas não consigo encontrar uma resposta em nenhum lugar. Em todos os lugares eu li sobre o Transaction Isolationque resolve a visibilidade dos dados dentro das transações simultâneas. Minha preocupação é o comportamento dentro de uma única transação.

Se eu iniciar uma transação, inserir alguns dados, poderei selecioná-los logo após - ainda dentro da mesma transação, mas não confirmada? Se sim, esse comportamento pode ser alterado de forma semelhante ao Isolamento de Transação mencionado no caso de transações simultâneas?

Para ser específico, estou direcionando o PostgreSQL 9.4.

postgresql transaction
  • 2 respostas
  • 30644 Views
Martin Hope
Ali Shaikh
Asked: 2015-04-08 02:04:27 +0800 CST

MySQL Contar linhas de outra tabela para cada registro na tabela

  • 34
SELECT
  student.StudentID,
  student.`Name`,
  COUNT(attendance.AttendanceID) AS Total
FROM
  student
LEFT JOIN attendance ON student.StudentID = attendance.StudentID

Estou tentando contar a última linha, mas conta todos os resultados e retorna um resultado

estou recebendo algo como

insira a descrição da imagem aqui

como há vários registros porque há duas entradas no ID de presença para K1052280, quero contá-las e retornar o número. Algo como

insira a descrição da imagem aqui

mysql select
  • 1 respostas
  • 125115 Views
Martin Hope
Aaron Bertrand
Asked: 2015-01-24 10:08:51 +0800 CST

Como descarto todas as restrições de todas as tabelas?

  • 34

Quero eliminar todas as restrições padrão, verificar restrições, restrições exclusivas, chaves primárias e chaves estrangeiras de todas as tabelas em um banco de dados SQL Server. Eu sei como obter todos os nomes de restrição de sys.objects, mas como preencher a ALTER TABLEparte?

sql-server ddl
  • 2 respostas
  • 70369 Views
Martin Hope
Sonique
Asked: 2014-09-14 02:33:25 +0800 CST

MySQL - comprimento e desempenho do varchar

  • 34

Declarar VARCHARo tamanho faz sentido para o desempenho? Existe alguma diferença (na velocidade) entre VARCHAR(50)e VARCHAR(255)? Ou definir o comprimento é uma restrição lógica/de design?

mysql database-design
  • 2 respostas
  • 44103 Views
Martin Hope
NibblyPig
Asked: 2014-03-20 02:21:52 +0800 CST

Em que ponto um banco de dados por cliente se torna inviável?

  • 34

Para um de nossos sistemas, temos dados confidenciais do cliente e armazenamos os dados de cada cliente em um banco de dados separado. Temos cerca de 10 a 15 clientes para esse sistema.

No entanto, estamos desenvolvendo um novo sistema que terá de 50 a 100 clientes, talvez mais. Estou pensando que pode ser inviável ter um banco de dados por cliente nesta instância (para armazenar registros confidenciais e histórico de auditoria). Porém não sei se isso é perfeitamente normal ou não, ou se existe outra forma de manter a segurança.

Alguma opinião sobre isso?

database-design sql-server-2012
  • 3 respostas
  • 7153 Views
Martin Hope
Sean Long
Asked: 2013-10-09 08:18:18 +0800 CST

Max Connection Pool limitado a 100

  • 34

Estou executando o SQL Server 2008 R2 SP1, em uma caixa do Windows Server 2008. Eu tenho um script .NET em execução no Visual Studio 2010 que faz o seguinte:

  • Entra no banco de dados
  • Faz uma mudança
  • Itera

O número total de vezes que iterará é 150, no entanto, está parando em 100 conexões e não consigo descobrir o porquê. Eu poderia ajustar meu script para usar apenas um único thread, mas prefiro saber onde estou perdendo uma configuração de conexão máxima, pois isso será mais útil para referência futura.

Aqui está onde eu verifiquei até agora:

  • Cadeia de conexão SQL no Visual Studio 2010 (é definido como 1000)
  • Propriedades de conexão da instância do banco de dados SSMS (é definido como 0 [infinito] conexões de usuário)
  • Pesquisei no Google algumas informações sobre o Server 2008, parece que ele pode lidar com mais de 100 conexões
  • Percorreu meu código ao lado SP_WHO2que fornece mais informações sobre conexões lógicas, visto que o número de conexões começa em 52 e os erros de script com o erro "Max Pooled Connections reach" em 152 conexões lógicas.
  • Alterada a string de conexão a ser usadaData Source=PerfSQL02;Initial Catalog=Masked;Integrated Security=True;Max Pool Size=1000

Não tenho certeza de onde verificar, sei que tenho muitas partes móveis aqui, mas tenho a sensação de que estou perdendo uma configuração máxima de piscina em algum lugar.

sql-server
  • 2 respostas
  • 184100 Views
Martin Hope
Vadim Samokhin
Asked: 2013-03-20 07:45:49 +0800 CST

VACUUM retornando espaço em disco para o sistema operacional

  • 34

VACUUMgeralmente não retorna espaço em disco para o sistema operacional, exceto em alguns casos especiais.
Dos documentos:

A forma padrão de VACUUMremove versões de linhas inativas em tabelas e índices e marca o espaço disponível para reutilização futura. No entanto, ele não retornará o espaço para o sistema operacional, exceto no caso especial em que uma ou mais páginas no final de uma tabela ficam totalmente livres e um bloqueio de tabela exclusivo pode ser facilmente obtido. Em contraste, VACUUM FULLativamente compacta as tabelas escrevendo uma nova versão completa do arquivo de tabela sem espaço morto. Isso minimiza o tamanho da tabela, mas pode levar muito tempo. Também requer espaço em disco extra para a nova cópia da tabela, até que a operação seja concluída.

A questão é: como esse estado de banco de dados pode one or more pages at the end of a table become entirely freeser alcançado? Isso pode ser feito via VACUUM FULL, mas não tenho espaço suficiente para implementá-lo. Então, existem outras possibilidades?

postgresql postgresql-9.2
  • 1 respostas
  • 43749 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