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
Atul Modi
Asked: 2024-09-30 21:00:57 +0800 CST

Qual software ABRE o banco de dados Firebird 2.0 como uma ferramenta de gerenciamento de banco de dados GRATUITA?

  • 5

Precisa de ajuda para encontrar uma ferramenta gratuita para o banco de dados Firebird 2.0?

Alguém tem alguma ideia da disponibilidade e do link desta ferramenta?

Tenho um banco de dados na plataforma Windows e tenho alguns procedimentos de armazenamento escritos lá

stored-procedures
  • 2 respostas
  • 19 Views
Martin Hope
Sakis Vtdk
Asked: 2024-09-28 00:58:24 +0800 CST

Otimizando uma consulta agregada no postgres

  • 5

Gostaria da sua ajuda para otimizar uma consulta cada vez mais lenta - ou melhor ainda, me ajude a entender qual é o problema e me indique a direção certa.

Todos os dias eu faço scraping de 3 supermercados e registro os preços deles em um aplicativo django. Cada scraping resulta em um novo Retrievalregistro, alguns milhares Pricede registros e talvez em alguns Itemregistros (a maioria dos itens já existe, então eu registro apenas os preços deles para um determinado dia).

Uma vez feito isso, um processo é executado que calcula as mudanças de preço para todos os itens de hoje, recuperando os dois últimos preços de cada item. Esses dois últimos preços podem não ser sempre em dias consecutivos, porque alguns itens vêm e vão.

As 3 tabelas nas quais estamos interessados ​​e seus índices são assim:

CREATE TABLE public.main_item (
    id uuid NOT NULL,
    name character varying(512) NOT NULL
);

CREATE TABLE public.main_price (
    id uuid NOT NULL,
    per_item double precision NOT NULL,
    item_id uuid NOT NULL,
    retrieval_id uuid NOT NULL
);

CREATE TABLE public.main_retrieval (
    id uuid NOT NULL,
    "timestamp" timestamp with time zone NOT NULL,
);

CREATE INDEX name_index ON public.main_item USING btree (name);
CREATE INDEX timestamp_index ON public.main_retrieval USING btree ("timestamp");

Tenho uma consulta que retorna um resultado parecido com este, onde idestá o Itemid e latest_pricesum json que contém os últimos 2 preços daquele item e então processo os resultados em python.

eu ia últimos_preços
0003db22-3c8a-4f21-aea1-667361ebe377 {"{"por_item": 2,44, "price_id": "24dc5524-35d5-472b-8f16-5840308a9cc4"}","{"por_item": 2,44, "price_id": "a415d740-0e50-43ba-b33f-3d6c9328a319"}"}
0011cc73-07ca-415d-85e0-1c6782e0b041 {"{"por_item": 3,48, "id_preço": "e754cc25-9fb5-4e88-8689-55878e47f7dc"}","{"por_item": 3,48, "id_preço": "553a6cf2-2c6e-421c-b7e0-c43d5c0cbf85"}"}

No entanto, a consulta está ficando cada vez mais lenta. Minha suposição é por causa do tamanho da Pricetabela, que agora é de ~16 milhões de linhas.

Executando uma EXPLAIN ANALYZEconsulta, vejo que a maior parte do tempo é gasto em uma consulta Bitmap Heap Scanna main_pricetabela: https://explain.depesz.com/s/ZX78#stats

Abaixo você pode encontrar a consulta que o django ORM gerou para hoje:

SELECT "main_item"."id", ARRAY(
    SELECT JSONB_BUILD_OBJECT(('price_id')::text, U0."id", ('per_item')::text, U0."per_item") AS "json"
    FROM "main_price" U0
        INNER JOIN "main_retrieval" U2
        ON (U0."retrieval_id" = U2."id")
    WHERE (U0."item_id" = ("main_item"."id") AND U2."timestamp" < '2024-09-24 00:00:00+00:00')
    ORDER BY U2."timestamp" DESC LIMIT 2
    ) AS "latest_prices"

    FROM "main_item"
    WHERE "main_item"."id" IN (
        SELECT V1."item_id"
        FROM "main_retrieval" V0
            LEFT OUTER JOIN "main_price" V1
            ON (V0."id" = V1."retrieval_id")
        WHERE (
            V0."timestamp" >= '2024-09-23 00:00:00+00:00'
            AND V0."timestamp" < '2024-09-24 00:00:00+00:00'
            AND NOT (
                EXISTS(
                    SELECT 1 AS "a"
                    FROM "main_retrieval" U0
                        LEFT OUTER JOIN "main_price" U1
                        ON (U0."id" = U1."retrieval_id")
                    WHERE (U1."item_id" IS NULL AND U0."id" = (V0."id"))
                    LIMIT 1))))

Observação

Ficarei mais do que feliz em abandonar a consulta gerada pelo ORM e escrevê-la manualmente.

No entanto, estou lutando para encontrar uma maneira ótima de buscar os 2 preços mais recentes para cada Item. Buscar o mais recente é fácil, mas buscar o anterior é surpreendentemente difícil.

Qualquer ajuda é muito apreciada. Obrigado antecipadamente.

postgresql
  • 1 respostas
  • 43 Views
Martin Hope
Numaira Nawaz
Asked: 2024-09-27 20:18:22 +0800 CST

Por que o response._id do MongoDB está sendo exibido como um objeto em vez de um ID de objeto?

  • 5

Estou trabalhando com MongoDB em um aplicativo Node.js usando Mongoose. Quando recupero um documento do banco de dados e registro o campo _id, espero que ele seja do tipo ObjectId, pois esse é o tipo padrão para _id no MongoDB. No entanto, quando registro o tipo de response._id usando typeof, ele mostra object:

console.log(typeof response._id); // Output: "object"

O valor real de response._id é algo como:

new ObjectId('66f68edc89d2d956b7a2fe7d')

Minhas perguntas são: ObjectId no MongoDB é considerado um objeto em JavaScript? O tipo de response._id não deveria ser ObjectId em vez de object? Como posso garantir que o tipo seja tratado corretamente como ObjectId no meu código TypeScript? Detalhes adicionais: Estou usando Mongoose em um ambiente Node.js. A recuperação de documentos e todo o resto funcionam bem, mas estou confuso sobre o resultado typeof.

mongodb
  • 1 respostas
  • 29 Views
Martin Hope
it's not me
Asked: 2024-09-27 19:38:35 +0800 CST

Por favor me ajude a entender esse problema sobre cardinalidade

  • 7

Eu e meu amigo estamos criando um diagrama ER para uma liga profissional de futebol. Somos muito novos em banco de dados, então não temos certeza se tudo o que fazemos está correto.

Ao criar um relacionamento entre um gerente e um clube, ele fez isso:diagrama

Estou bastante confuso sobre o porquê dos 2 relacionamentos managedBy e signsWith serem Muitos para Muitos. Meu amigo disse que vários gerentes podem gerenciar vários clubes, um para um de cada vez. Mas não deveria ser Um para Um? Já que a qualquer momento, um clube só pode ter um único gerente gerenciando-o e um gerente só pode ter um único clube para gerenciar (não nos importamos com o gerente assistente neste caso); a mesma coisa sobre o relacionamento signsWith.

Então, qual de nós está certo?

database-design
  • 1 respostas
  • 179 Views
Martin Hope
patricio2626
Asked: 2024-09-27 10:28:11 +0800 CST

Erro de inicialização "Cassandra 5.0 requer Java 11 ou Java 17"

  • 6

Só consigo descobrir que o Cassandra suporta JDK17, e nenhuma especificação de sabor Java. Primeiro, instalei o OpenJDK11 e recebi a mesma mensagem abaixo.

Então descobri que o Cassandra 5.0 suporta apenas JDK17. Tudo bem, eles provavelmente deveriam mudar a mensagem se for o caso, mas tudo bem. Então instalei o OpenJDK17 e ainda recebi o abaixo.

$ which java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java

$ java -version
openjdk version "17-ea" 2021-09-14
OpenJDK Runtime Environment (build 17-ea+11-Ubuntu-114.042)
OpenJDK 64-Bit Server VM (build 17-ea+11-Ubuntu-114.042, mixed mode, sharing)
vm1@ubuntu:/opt/apache-cassandra-5.0.0/bin$ ./cassandra 
Cassandra 5.0 requires Java 11 or Java 17.

Então tentei com Oracle Java 17, o mesmo. O que dá?

$ which java
/usr/lib/jvm/java-17-oracle/bin/java

$ java -version
java version "17.0.6" 2023-01-17 LTS
Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)
vm1@ubuntu:/opt/apache-cassandra-5.0.0/bin$ ./cassandra 
Cassandra 5.0 requires Java 11 or Java 17.
installation
  • 2 respostas
  • 33 Views
Martin Hope
Gunther Schadow
Asked: 2024-09-27 00:24:16 +0800 CST

O PgSQL retorna resultados em velocidades diferentes do mesmo plano de execução, mas consultas diferentes usando CTE vs. seleção aninhada. Por quê?

  • 5
db=> explain analyze with data as (select a, b, c from D where e='something') select * from Data;
                                                              QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------
 Seq Scan on D (cost=0.00..3060987.06 rows=1955179 width=42) (actual time=0.022..81146.222 rows=2027407 loops=1)
   Filter: ((e)::text = 'something'::text)
   Rows Removed by Filter: 9757878
 Planning Time: 0.083 ms
 Execution Time: 89924.754 ms
(5 rows)
db=> explain analyze select * from (select a, b, c from D where e='something') x;
                                                              QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------
 Seq Scan on documentsubjecthistory  (cost=0.00..3060987.06 rows=1955179 width=42) (actual time=0.025..81148.606 rows=2027407 loops=1)
   Filter: ((subjectentitycodesystem)::text = '2.16.840.1.113883.6.69'::text)
   Rows Removed by Filter: 9757878
 Planning Time: 0.105 ms
 Execution Time: 89925.772 ms
(5 rows)

No entanto, quando realmente executo o primeiro com o with Data (...) select * from DataCTE, os resultados só aparecem depois desses 89 segundos, enquanto quando executo o select * from (...) x, obtenho a página inicial rapidamente.

Eu tenho \set FETCH_COUNT 1000em .psqlrc

postgresql
  • 1 respostas
  • 24 Views
Martin Hope
Colin 't Hart
Asked: 2024-09-26 15:42:05 +0800 CST

Cardinalidade de um multirange? Quantos ranges ou gaps existem em um multirange?

  • 6

Como obtenho a cardinalidade de um multirange?

Estou usando range_agg()para agregar intervalos, o que mescla intervalos se eles forem contínuos ou retorna o que parece ser uma matriz de intervalos se os intervalos forem descontínuos.

Quero detectar se há alguma lacuna no multirange e queria usar cardinality()para isso. Uma cardinalidade de 1 significaria nenhuma lacuna, uma cardinalidade de 2 significa 1 lacuna, etc.

Entretanto, a cardinalidade não é definida em um multirange, porque um multirange não é tecnicamente uma matriz:

with x(a) as (
  values
    (daterange(date '2024-01-30', date '2024-03-31', '[)')),
    (daterange(date '2024-04-01', date '2024-04-30', '[)'))
)
select cardinality(range_agg(a)) from x;

retorna

ERROR:  function cardinality(datemultirange) does not exist
LINE 6: select cardinality(range_agg(a)) from x;

Provavelmente posso implementar a função sozinho com unnest()e contando o número de linhas resultantes, mas estou curioso para saber se há outras boas soluções.

postgresql
  • 1 respostas
  • 22 Views
Martin Hope
paulH
Asked: 2024-09-25 17:18:20 +0800 CST

As funções CLR do Banco de Dados SQL do Azure estão funcionando

  • 14

Estou no meio da migração de um banco de dados para o Azure SQL Database. Eu estava lendo sobre as diferenças entre o Azure SQL Database e o Azure Managed Instance e notei que as funções CLR NÃO são suportadas no Azure SQL Database.

Isso me surpreendeu, pois já carreguei uma versão de teste do banco de dados no Azure SQL Database e ninguém reclamou de problemas. Dei uma olhada e, com certeza, o assembly CLR está lá e executar consultas que usam as funções CLR funciona muito bem.

Então fui pesquisar na web, e todas as informações que vejo são que o CLR não funciona com o Azure SQL Database. No entanto, aqui estou eu, com um assembly CLR funcionando no Azure SQL Database.

Então agora estou pensando, digo à empresa que temos que mudar para usar a Instância Gerenciada porque esse é o único lugar onde o CLR é suportado? Ou continuo com o Banco de Dados SQL do Azure porque está funcionando bem? Ou esqueci de alguma coisa? A Microsoft reativou o CLR sem avisar ninguém?

sql-server
  • 3 respostas
  • 677 Views
Martin Hope
Garbg
Asked: 2024-09-25 06:23:05 +0800 CST

Como permitir que um booleano seja verdadeiro somente se outro booleano na mesma linha for verdadeiro no MariaDB?

  • 5

Tenho duas colunas booleanas na minha tabela. Uma chamada IsUnlisted e uma chamada IsPrivate. Só quero permitir que IsPrivate seja 1 (TRUE) se IsUnlisted for 1 (TRUE) também usando uma restrição de verificação. Estou usando MariaDB que compartilha a maioria das coisas com mysql.

mariadb
  • 2 respostas
  • 21 Views
Martin Hope
fah81
Asked: 2024-09-25 00:40:51 +0800 CST

Oracle 10g remove dbf não utilizado

  • 5

Excluí um tablespace que não precisava mais e, acidentalmente, deixei de fora a consulta SQL para excluir os arquivos. O tablespace foi excluído, mas o DFB foi deixado no caminho do sistema operacional.

Fiquei pensando qual seria a melhor maneira de excluí-lo, já que está ocupando espaço desnecessário.

Não ousei executar uma

rm -f file.dbf

lsof não indica que algum processo o esteja utilizando, mas acho que seria melhor fazê-lo a partir do próprio banco de dados, se possível.

Sistema: RHEL4 Banco de dados Oracle: 10.2

Obrigado!

oracle
  • 1 respostas
  • 20 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