我正在寻找从数据库中给定表中查询列列表的最快方法。我意识到该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 一样从给定表中获取列列表的等效更快的方法?
您正在寻找
sys.columns
并sys.tables
来自Object Catalog Views。性能差异通常不是 SQL Server 关心的问题,但信息架构视图维护得不好,也没有提供完整的覆盖范围。请参阅Aaron Bertrand的反对 INFORMATION_SCHEMA 观点的案例。