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 / user-28367

arthur's questions

Martin Hope
arthur
Asked: 2021-04-30 23:54:49 +0800 CST

Solicitar bloqueio Sch-M em uma mesa

  • 3

Tenho acesso a um banco de dados em modo read uncommitted e preciso fazer manutenção em uma tabela em ambiente operativo. Preciso adquirir um cadeado exclusivo em uma mesa, fazer um trabalho e depois liberar o cadeado.

Durante essa manutenção, mesmo as consultas de leitura não devem obter dados não confirmados de volta.

Esta pergunta e resposta parece promissora. Eu faço:

begin transaction;
SELECT TOP (1) 1 FROM a WITH (TABLOCK);

mas então, um SIXbloqueio é adquirido na tabela a. No entanto, isso não bloqueia a tabela de consultas selecionadas. Como posso adquirir Sch-Mo bloqueio na mesa? No máximo consigo o Sch-Scadeado com:

SELECT TOP (1) * FROM a WITH (TABLOCK);

isso ainda não bloqueia consultas selecionadas na tabela.

sql-server locking
  • 1 respostas
  • 161 Views
Martin Hope
arthur
Asked: 2021-01-30 01:31:42 +0800 CST

Tamanho da tabela sem índices no sql server

  • 3

Usando a seguinte consulta, posso obter o tamanho dos índices de uma tabela:

SELECT
    i.name              AS IndexName,
    SUM(page_count * 8) AS IndexSizeKB
FROM sys.dm_db_index_physical_stats(db_id(), object_id('schema.table'), NULL, NULL, 'DETAILED') AS s
JOIN sys.indexes AS i
ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id
GROUP BY i.name
ORDER BY i.name

Se eu executar sp_spaceused 'schema.table'o tamanho sem índices corresponde à datacoluna?

Alguma maneira de obter o tamanho da tabela sem índices no sql server? ( SELECTa declaração seria boa, pois gostaria de conectar essa consulta a uma consulta maior).

Se eu executar Get size of all tables in database , os tamanhos das tabelas são quase os mesmos dos tamanhos dos índices (sugerindo que algo está errado).

sql-server size
  • 2 respostas
  • 1478 Views
Martin Hope
arthur
Asked: 2021-01-20 01:14:45 +0800 CST

UDF no MS SQL Server retornando uma consulta começando com "com" causa

  • 0

Esta é uma consulta SQL perfeitamente válida e funciona bem (por exemplo) em Microsoft SQL Server 2014:

with t as (select 'a' as attr) select * from t

ele retorna a, certamente pode-se simplificá-lo e descartar a withparte, mas esse não é o ponto, o ponto é descobrir um menor exemplo que ilustre a necessidade/problema. Eu posso empacotar parte dele como um UDF:

CREATE PROCEDURE x(@__employee_id uniqueidentifier)
AS
RETURN (select 'a' as attr);

Como posso empacotar uma consulta que tem withbloco? Meu objetivo é conseguir algo como:

CREATE PROCEDURE x (@__employee_id uniqueidentifier)
AS
RETURN (
    with t as (select 'a' as attr) select * from t
);

porém sql servernão gosta, disparando um erro:

Msg 156, Level 15, State 1, Procedure x, Line 4 [Batch Start Line 0]
Incorrect syntax near the keyword 'with'.
sql-server-2014
  • 2 respostas
  • 32 Views
Martin Hope
arthur
Asked: 2018-12-27 12:34:09 +0800 CST

adicionando pgadmin3 ao menu iniciar do windows

  • 0

Eu instalei o postgres (versões diferentes na verdade), bem como o pgadmin3 no Windows usando o gerenciador de pacotes:

https://www.openscg.com/bigsql/package-manager/ https://www.openscg.com/bigsql/docs/pgcli/pgcli/

Eu também adicionei os diretórios bin no ambiente de caminho no Windows. Existe alguma maneira de instalar atalhos do programa para o menu Iniciar no Windows?

windows pgadmin
  • 1 respostas
  • 124 Views
Martin Hope
arthur
Asked: 2018-05-09 08:03:28 +0800 CST

Reiniciando a replicação hot_standby quando o *slave* falha

  • 0

Contexto: replicação master-slave no Postgres 9.4, slave morreu algumas semanas atrás:

  • o escravo copiou um arquivo WAL do mestre,
  • disse ao mestre que o arquivo foi copiado,
  • o mestre excluiu o arquivo wal,
  • o escravo tentou reproduzir o arquivo wal corrompido,
  • descobriu que o arquivo está corrompido,
  • e desiste de começar.

Enquanto isso, o mestre acumulou mais logs do que o próprio banco de dados.

Como posso dizer ao mestre que a replicação acabou (para reconfigurar a replicação)? Algum comentário geral sobre como proceder com esta situação?

postgresql postgresql-9.4
  • 2 respostas
  • 2182 Views
Martin Hope
arthur
Asked: 2018-05-08 05:16:15 +0800 CST

Por que a instrução select solicita bloqueios exclusivos?

  • 1

No postgres (9.5) selectsolicita bloqueio exclusivo. Por quê?

play=# \x on
Expanded display is on.
play=#   SELECT * FROM pg_locks pl
  LEFT JOIN pg_stat_activity psa
    ON pl.pid = psa.pid
    where
    pl.mode = 'ExclusiveLock'
;


-[ RECORD 1 ]------+---------------------------------
locktype           | virtualxid
database           |
relation           |
page               |
tuple              |
virtualxid         | 7/16
transactionid      |
classid            |
objid              |
objsubid           |
virtualtransaction | 7/16
pid                | 17376
mode               | ExclusiveLock
granted            | t
fastpath           | t
datid              | 1700431
datname            | play
pid                | 17376
usesysid           | 10
usename            | postgres
application_name   | psql
client_addr        | 127.0.0.1
client_hostname    |
client_port        | 54308
backend_start      | 2018-05-07 15:12:30.682069+02
xact_start         | 2018-05-07 15:12:59.513311+02
query_start        | 2018-05-07 15:12:59.513311+02
state_change       | 2018-05-07 15:12:59.513313+02
wait_event_type    |
wait_event         |
state              | active
backend_xid        |
backend_xmin       | 7152428
query              | SELECT * FROM pg_locks pl       +
                   |   LEFT JOIN pg_stat_activity psa+
                   |     ON pl.pid = psa.pid         +
                   |     where                       +
                   |     pl.mode = 'ExclusiveLock'   +
                   | ;
postgresql
  • 1 respostas
  • 475 Views
Martin Hope
arthur
Asked: 2017-10-25 03:45:52 +0800 CST

Especifique a conta no formato de domínio Erro na instalação do SQL Server 2016 no Windows 10

  • 1

Estou tentando instalar o SQL Server 2016 no Windows 10 Pro. Na guia Configuração do Servidor, preciso fornecer os nomes das contas, os serviços serão executados como. Independente se eu fornecer contas virtuais ou locais, um erro é gerado e não consigo prosseguir:

Especifique a conta no formato de domínio

Comentários?

installation sql-server-2016
  • 1 respostas
  • 8714 Views
Martin Hope
arthur
Asked: 2015-06-25 03:44:28 +0800 CST

Inserções persistentes em um UDF mesmo se a função for abortada

  • 4

Eu tenho um UDF bastante complicado (move-se em torno de um monte de tabelas, bem como cria um monte de novas) onde podem ocorrer várias interrupções. Antes de cada operação, gostaria de registrar a hora em que uma operação ocorre e a própria consulta. A UDF se parece com o seguinte então:

log function_start

log sql1
execute sql1

log sql2
execute sql2

...

log sqlN
execute sqlN

log function_end

Cada declaração de log significa inserir um novo registro na seguinte tabela:

CREATE TABLE backup_logs
(
  id serial NOT NULL,
  t timestamp with time zone default now(),
  sql text,
  CONSTRAINT backup_logs_pkey PRIMARY KEY (id)
)

Em caso de aborto, gostaria sql1, sql2, ... sqlNde ser revertido, mas inserto into backup_logspara persistir. Pergunta: como posso conseguir isso?

postgresql insert
  • 1 respostas
  • 914 Views
Martin Hope
arthur
Asked: 2014-10-22 01:46:14 +0800 CST

Violação ACID no Postgres 9.1?

  • 1

Estou usando um banco de dados Postgres para implementar um agendamento de trabalhos para um grande número de computadores/processos. Para encurtar a história, cada trabalho tem seu id, todo o agendamento é implementado com três guias: todos os trabalhos, trabalhos em execução no momento e trabalhos já concluídos.

A principal funcionalidade do agendamento é (1) solicitar um trabalho e (2) informar o banco de dados sobre um trabalho concluído. A solicitação de um trabalho leva qualquer id da lista de trabalhos, que não esteja na tabela em execução e nem na tabela concluída:

insert into piper.jobs_running
select x.fid from ( 
  SELECT fid FROM piper.jobs
  except 
  select fid from piper.jobs_running
  except 
  select fid from piper.jobs_completed
 ) as x limit 1
returning(fid)

A conclusão do trabalho o remove da lista em execução e o insere na lista concluída. Como não é específico da simultaneidade, omito os comandos SQL (leva de dezenas de minutos a algumas horas para concluir um trabalho).

Foi uma surpresa desagradável para mim que dois processos executando exatamente a mesma consulta acima (praticamente solicitando o trabalho ao mesmo tempo) possam obter o mesmo id de trabalho (fid). A única explicação possível que estou apresentando é que o Postgres não é compatível com o ACID. Comentários?

Informações adicionais: Eu configurei as transações para serem serializáveis ​​(em postgresql.conf set default_transaction_isolation = 'serializable' ). Agora o SGBD falha nas transações caso o isolamento não seja cumprido. é possível forçar o Postgres a reiniciá-los automaticamente?

postgresql postgresql-9.1
  • 2 respostas
  • 759 Views
Martin Hope
arthur
Asked: 2014-09-18 01:14:21 +0800 CST

Escapando o delimitador no postgresql

  • 4

Estou tentando importar dados para o postgres. Os campos de dados são separados por vírgula, as strings podem conter vírgulas, caso em que são escapadas:

Estrutura de dados:

create table v (a varchar);

Arquivo de dados:

bus
'Gat\,\\e\'way_MQB'

Comando de importação (executado no Linux a partir do bash)

cat data.csv | psql -d database -c "copy v (a) from stdin with delimiter ',' escape '\\' CSV header"

Erro:

ERROR:  extra data after last expected column

Eu tenho lutado e google contra esse problema por algumas horas e não entendo o que estou fazendo de errado?

postgresql import
  • 1 respostas
  • 15158 Views
Martin Hope
arthur
Asked: 2014-03-27 02:17:10 +0800 CST

Restaurando a conta de superusuário no servidor postgres

  • 2

Estou com uma situação completamente curiosa com um dbms postgres. Eu instalei o banco de dados e devido a uma configuração incorreta dos meus scripts de instalação, tornei a função de superusuário um usuário comum. Agora eu tenho uma instalação completamente nova do postgres com apenas o banco de dados de modelo e um único usuário 'postgres' que não pode fazer praticamente nada. Como posso tornar o usuário postgres superusuário novamente?

Tentei reinstalar o servidor no ubuntu 12.04 aptitude reinstall postgresql-9.1, mas a função parece não ser afetada. Muito provavelmente porque a reinstalação não afeta os arquivos onde as funções são gravadas.

postgresql role
  • 2 respostas
  • 5591 Views
Martin Hope
arthur
Asked: 2013-12-14 04:31:59 +0800 CST

Numeração de linhas consecutivamente para um número de tabelas

  • 1

Eu tenho várias tabelas, todas contendo atributos aid,bid,cide xiddo tipo integer, outros atributos podem diferir. Para cada tabela (dada) T, gostaria de ordenar as linhas de acordo com a aid,bid,cidcoluna ascendente e atualizada xidcom valores incrementados começando com 0. Qual é a melhor maneira de conseguir isso?

Minha solução atual envolve:

  • selecionando mesaT
  • abrindo um cursor sobre as tuplas ordenadas de uma tabela
  • atribuir o valor de autoincremento axid
  • inserindo a tupla em uma tabela temporalT_temp
  • excluindo todos os registros deT
  • inserindo todos os registros de T_tempdentroT

Como as tabelas têm esquemas diferentes, programei metade do código PL/pgSQLe metade do código com script bash.

Questão 1: Algum comentário sobre como programá-lo em PL/pgSQL puro?

Pergunta 2: Algum comentário sobre como implementar isso de forma mais elegante?

postgresql update
  • 1 respostas
  • 591 Views
Martin Hope
arthur
Asked: 2013-12-10 08:47:35 +0800 CST

chamando uma função com parâmetros em insert

  • 1

É possível em SQL atingir com elegância o seguinte:

insert into my_table (the_geom) VALUES 
    geomfromwkb('\x010100000058b4b610a73a27408144b7147f194840',4326)),
    geomfromwkb('\x010100000058b4b610a73a27408144b7147f194840',4326)),
    .....

que envolve invocar uma função externa geomfromwkbcom dois parâmetros?

Até agora, tenho uma solução nada elegante. A primeira solução é deste tipo:

insert into mytable (the_geom) select 
    geomfromwkb('\x010100000058b4b610a73a27408144b7147f194840',4326)) union
    geomfromwkb('\x010100000058b4b610a73a27408144b7147f194840',4326)) union
    .....

O segundo usa a instrução prepare:

PREPARE my_insert AS INSERT INTO geom_example (the_geom) 
    VALUES (geomfromwkb($1,4326));
EXECUTE my_insert ('\x010100000058b4b610a73a27408144b7147f194840');
EXECUTE my_insert ('\x010100000058b4b610a73a27408144b7147f194840');
statement: DEALLOCATE my_insert;

Pergunta 1: Existe algo mais elegante do que isso?

Questão 2 : O que o banco de dados faz quando vê um monte de sindicatos?

Questão 3 : a preparação realmente acelera as coisas em comparação com uma inserção de gordura?

Questão 4 : a sequência de bytes é do tipo geometria. É possível pular as verificações de consistência (para garantir que esta é realmente a sequência de bytes de geometria) para acelerar as inserções?

postgresql insert
  • 2 respostas
  • 2343 Views
Martin Hope
arthur
Asked: 2013-11-06 09:13:45 +0800 CST

Conversão automática de registros anônimos retornados de um UDF para um tipo de tabela conhecido

  • 8

O código proprietário (que não podemos alterar) possui várias funções definidas pelo usuário do tipo:

create or replace function f() returns record as $$ ... $$

que chamamos da seguinte forma (por exemplo):

SELECT status, log FROM f() as (status boolean, log text);

(status boolean, log text)é um tipo de linha da tabela T. É possível converter automaticamente o record(ou setof recordtipo de retorno) no tipo de Tlinha sem listar os atributos? O que procuro é do tipo:

SELECT * FROM f() as T%rowtype
postgresql plpgsql
  • 1 respostas
  • 9150 Views
Martin Hope
arthur
Asked: 2013-11-06 08:04:21 +0800 CST

Inserir valores de uma variável de registro em uma tabela

  • 3

Estou desenvolvendo uma função definida pelo usuário que recebe dois argumentos:

create or replace function gesio(
    events_table_in regclass,  
    events_table_out regclass)
returns void as $$ ... $$

events_table_ine events_table_outtêm exatamente o mesmo esquema.

Explicado de forma simples, eu percorro os registros de events_table_in, manipulo os registros e quero anexar (inserir) os registros manipulados events_table_outda seguinte maneira:

OPEN recCurs FOR execute 
format('SELECT * FROM %s order by session_id, event_time', event_table_in);

LOOP
    FETCH recCurs into rec;
    if not found then
      exit;
    end if;

    -- 1. do something with rec

    -- 2. insert the rec into events_table_out

end loop;

Como posso salvar o recem events_table_out?

postgresql insert
  • 3 respostas
  • 26704 Views
Martin Hope
arthur
Asked: 2013-09-19 03:37:58 +0800 CST

obtendo a saída da instrução delete em UDF no postgres

  • 2

No Postgres em uma função definida pelo usuário eu faço

execute format('delete from table where session_id = %L', id);

correu sem executepostgres (pode) retornar (s) o seguinte:

DELETE 0

Existe alguma maneira de obter essa saída na função definida pelo usuário? O que estou procurando é algo como:

execute format('delete from table where session_id = %L', id) into log;
postgresql dynamic-sql
  • 1 respostas
  • 680 Views

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