gpt4 book ai didi

postgresql - 分析 SQL 查询的工具

转载 作者:行者123 更新时间:2023-11-29 13:12:48 26 4
gpt4 key购买 nike

是否有任何构建的工具可以接受 postgres 查询并将其转换为 JSON 对象。像这样的东西:

INSERT INTO schema_a.table_a
SELECT * from schema_b.table_b

输出:

{
'type': 'query',
'method': 'INSERT INTO',
'output':
{
'type': 'table',
'schema': 'schema_a'
'table': 'table_a'
},
'input':
{
'type': 'query',
'method': 'SELECT',
'inputs':
[
{
'type': 'table'
'schema': 'schema_b'
'table': 'table_b'
}
]
}
}

不必完全是这样,但想法是我们可以对输入、输出、方法进行分类,并且足够灵活以能够处理连接、子查询等。

最佳答案

这可能不是您要找的,而是 EXPLAIN确实支持 JSON 作为输出类型,它将使用 PostgreSQL 的查询解析器/规划器将查询分解为其组成部分(为简洁起见省略了一些键/值):

CREATE TABLE test ( id SERIAL PRIMARY KEY, value TEXT NOT NULL );

EXPLAIN (FORMAT JSON) INSERT INTO test VALUES (1, 'Test');
[
{
"Plan": {
"Node Type": "ModifyTable",
"Operation": "Insert",
"Relation Name": "test",
"Alias": "test"
}
}
]

EXPLAIN (FORMAT JSON) SELECT * FROM test;
[
{
"Plan": {
"Node Type": "Seq Scan",
"Relation Name": "test",
"Alias": "test"
}
}
]

这肯定能够告诉您查询中使用的每个关系(包括复杂的连接、 View 等)。如果您使用 ANALYZE,它将能够告诉您输出行数(但不是内容)。这将无法告诉您查询的输入。

关于postgresql - 分析 SQL 查询的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52766137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com