AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[information-schema](dba)

Martin Hope
Daniel L. VanDenBosch
Asked: 2022-06-30 12:31:49 +0800 CST

从表中查询列名的最快方法

  • -3

我正在寻找从数据库中给定表中查询列列表的最快方法。我意识到该INFORMATION_SCHEMA.columns视图存在于 Microsoft SQL Server 中。

但是,在 PostgreSQL 中,我记得使用INFORMATION_SCHEMA.columns来从特定表中获取列列表,如果我没记错的话,通过实验我发现以下方法比使用信息模式更快:

    SELECT *
    FROM pg_catalog.pg_tables
    WHERE schemaname != 'pg_catalog' 
    AND schemaname != 'information_schema'; 

根据个人经验,查询对象表可能需要 10 毫秒,但查询信息模式可能需要 200 毫秒。

SQL Server 是否有与 PostgreSQL 一样从给定表中获取列列表的等效更快的方法?

sql-server information-schema
  • 1 个回答
  • 59 Views
Martin Hope
Eyal leshem
Asked: 2022-03-01 12:59:04 +0800 CST

我可以将“描述”查询的输出与雪花中的其他表连接起来吗

  • -1

我尝试以更复杂的方式使用Describe 表,例如与其他表连接或其他 sql 操作。

另一方面,雪花似乎不接受描述表作为子查询。

例如,这是产生语法错误

select * from (DESC TABLE my_table) // syntax error line 1 at position 12 unexpected 'TABLE'.

有没有办法做到这一点?

(使用 information_schema 不是一个选项,因为它太慢了)

information-schema snowflake
  • 1 个回答
  • 115 Views
Martin Hope
Federico Razzoli
Asked: 2021-11-14 12:58:06 +0800 CST

哪个更快:pg_catalog 或 information_schema?

  • 1

pg_catalog我理解和之间的高级差异information_schema。

但在许多情况下,工具可以选择使用其中任何一个。我想知道是否有性能原因我们应该选择其中一个。预计其中之一的查询会更快吗?它们在锁方面的工作方式是否相同?

postgresql information-schema
  • 1 个回答
  • 786 Views
Martin Hope
Ivan Voras
Asked: 2020-09-29 04:32:35 +0800 CST

如何在 PostgreSQL 的信息模式中检查视图的结构?

  • 1

有没有办法以类似于表中的条目描述表的方式来发现视图的结构information_schema.columns?我也可以使用pg_*桌子。

换句话说,类似于如何psql描述\d表和视图的结构,我想通过 SQL 查询访问这些信息。

postgresql information-schema
  • 1 个回答
  • 223 Views
Martin Hope
Subrata Das
Asked: 2019-03-24 06:00:42 +0800 CST

为什么 DATA_TYPE='double' NULL 的 INFORMATION_SCHEMA.COLUMNS 表中 NUMERIC_SCALE 列的值?

  • 1

我创建了一个 data_type 为DOUBLE的列。

alter table my_table add column my_column double;

当我在information_schema.COLUMNS表中查询此列时,我发现此列的NUMERIC_SCALE是NULL吗?

select DATA_TYPE,
NUMERIC_PRECISION,
NUMERIC_SCALE

from information_schema.columns

where table_schema = 'my_schema'
and table_name = 'my_table'
and column_name = 'my_column'

+-----------+-------------------+---------------+
| DATA_TYPE | NUMERIC_PRECISION | NUMERIC_SCALE |
+-----------+-------------------+---------------+
| double    |                22 |          NULL |
+-----------+-------------------+---------------+

有人可以解释这种行为吗?

mysql information-schema
  • 1 个回答
  • 1042 Views
Martin Hope
Racer SQL
Asked: 2018-12-05 04:39:06 +0800 CST

Oracle 上的 Information_Schema?

  • 1

我是一名 SQL Server DBA,我喜欢到处摆弄 Oracle。

我可以看到select * from information_Schema.columns关于桌子的一切(我现在需要的一切)。

有没有办法在 Oracle Schema 上列出这些信息?

oracle information-schema
  • 2 个回答
  • 3027 Views
Martin Hope
devuxer
Asked: 2018-05-02 10:06:50 +0800 CST

为什么 information_schema 有“YES”和“NO”字符串而不是布尔值?

  • 7

我惊讶地发现is_nullable这个查询的列被输入为character varying (3)而不是boolean:

select
    column_name,
    data_type,
    is_nullable
from
    information_schema.columns
where
    table_schema = 'public';

我注意到其他一些列也使用“YES”/“NO”。这样做的理由是什么?我最初的想法是,也许除了 "YES" 和 "NO" 之外的其他值也是可能的,证明 a 以外的其他值是合理的boolean,但我在当前数据库中没有看到任何这样的例子。

postgresql information-schema
  • 1 个回答
  • 1661 Views
Martin Hope
DdD
Asked: 2018-02-18 14:18:29 +0800 CST

Information_schema 出现在 slow_log 中

  • 1

我发现我的 information_schema 一直在运行这个查询

SELECT engine, COUNT(*) as n FROM information_schema.tables WHERE engine is not null GROUP BY engine

其中似乎总是出现在 slow_log 中,似乎每 4-5 秒运行一次;查询时间为 10 秒。

我正在使用谷歌云 SQL。

有没有一种方法可以阻止这种情况的发生——或者更确切地说,是什么一直在触发它?我已经阅读了关于 information_Schema 的 MySQL 文档,但无法弄清楚为什么要调用它。

谢谢

mysql-5.7 information-schema
  • 1 个回答
  • 69 Views
Martin Hope
as.beaulieu
Asked: 2018-01-19 10:58:39 +0800 CST

postgres系统目录查询表中的列

  • 5

我正在针对为用户配置数据库的应用程序构建集成测试。为其创建的用户不是超级用户,并且无权访问 schema_information.tables 因为当我尝试以下脚本时:

SELECT table_name
FROM information_schema.tables
WHERE table_schema='{schema}'

我得到了 0 的回报,因为这个用户没有权限。

我正在尝试查询数据库以验证创建的表和列。我可以使用以下脚本通过系统目录获取表名列表:

SELECT tablename
FROM pg_catalog.pg_tables
WHERE schemaname = '{schema}'

这会以我想要的方式输出表名:

业务,位置,人等...

我找不到带有系统目录的脚本,然后找到每个表的列名(作为奖励,数据类型)。到目前为止,我已经尝试了以下方法:

SELECT attname, format_type(atttypid, atttypmod) AS type
FROM pg_attribute
WHERE  attrelid = 'business'

这是错误:

ERROR:  invalid input syntax for type oid: "business"
LINE 1: ...od) AS type FROM   pg_attribute WHERE  attrelid = 'business'
                                                         ^```

也试过:

SELECT
    a.attname as "Column",
    pg_catalog.format_type(a.atttypid, a.atttypmod) as "Datatype"
FROM
    pg_catalog.pg_attribute a
WHERE
    a.attnum > 0
    AND NOT a.attisdropped
    AND a.attrelid = (
        SELECT c.oid
        FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
        WHERE c.relname ~ '**Dont know what to put here, Schema? Database?**'
            --AND pg_catalog.pg_table_is_visible(c.oid)
    );

这将返回 0 和架构或数据库。我不知道该为 c.relname 放什么。我是否也看到 0 是因为基本用户无法看到比模式中的表更深的内容?

postgresql information-schema
  • 1 个回答
  • 14151 Views
Martin Hope
Lee
Asked: 2018-01-15 20:20:37 +0800 CST

如何在 Amazon RDS 上查询 INFORMATION_SCHEMA.COLUMNS?

  • 2

我收到了另一个团队的列名列表。为了确保所有字段列名在特定模式中都有效,我将它们放入一个临时表中。我现在想看看它们是否存在。当我尝试加入时information_schema.columns,我收到以下错误:

ERROR: 0A000: Specified types or functions (one per INFO message) not supported on Redshift tables.
Column "c.column_name" has unsupported type     "information_schema.sql_identifier".
Column "a.*" has unsupported type "pg_attribute".
Column "t.*" has unsupported type "pg_type".
Function "format_type(oid,integer)" not supported.
Function "format_type(oid,integer)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.

我试图转换column_name成不同的类型,但没有运气。谁能告诉我出了什么问题以及我如何实现这个目标?

errors information-schema
  • 1 个回答
  • 7219 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve