标签: metadata

有没有办法同时设置 PostgreSQL 数据库中所有对象的所有者?

Stack Overflow Q & A Modify OWNER on all table 同时在 PostgreSQL 中描述了一些漂亮的方法来将表和其他对象更改为特定用户,并且它工作得很好,但是所有的建议似乎都忽略了我创建的函数。

是否有一种相当简单的方法来重置数据库中所有对象的所有者,包括函数?手工操作是非常不可取的。

postgresql metadata ddl functions owner

14
推荐指数
2
解决办法
2万
查看次数

如何编写查询以查找数据库中具有特定列名的所有表

我有一个包含大约 100 个表的数据库,我需要构建一个连接查询以从其中两个表中获取特定数据。我知道一个,但不知道另一个。基本上我需要这样的东西:

select <tables> from <database> where exists table.column name;

我怎样才能做到这一点?

metadata

14
推荐指数
2
解决办法
13万
查看次数

存储记录元数据的最佳实践

在数据库中存储单个记录的元数据的最佳实践是什么?

我需要在我的数据库中存储许多表的常见元数据,例如创建时间和上次更新时间。我找到了几种不同的解决方案:

  1. 将元数据直接存储在表中。

    优点:

    • 元数据直接链接到记录
    • 无需连接即可检索元数据

    缺点:

    • 需要大量重复列(除非使用继承)
    • 元数据和业务数据不分离
  2. 创建一个通用元数据表,并使用软外键将数据链接到正确的表和记录。

    优点:

    • 没有重复的列
    • 元数据与业务数据分离

    缺点:

    • 元数据和数据之间没有直接链接(不能使用 FK)
    • 联接需要附加条件
  3. 为每个需要元数据的表创建单独的元数据表。

    优点:

    • 元数据直接链接到记录
    • 元数据与业务数据分离

    缺点:

    • 需要很多额外的表
    • 需要大量重复列(除非使用继承)

是否有比我在这里提到的更多的选择、优点或缺点?存储这些元数据的最佳实践是什么?

postgresql database-design metadata

13
推荐指数
1
解决办法
5780
查看次数

PostgreSQL - 谁或什么是“PUBLIC”角色?

information_schema.role_table_grants当我publicgrantee专栏中看到时我正在看,然后我检查了information_schema.enabled_roles但是这个role_name不存在。

=> 谁或什么public角色?

postgresql role metadata

13
推荐指数
2
解决办法
1万
查看次数

是否存在一种方法来确定包含多个文件的文件组中的分配单元的确切文件?

我希望能够详细了解哪些数据库文件包含数据库中各种 HoBT(对齐和非对齐)的分配单元。

在我们开始为每个文件组创建多个数据文件之前,我一直使用的查询(见下文)一直对我有用,我只能弄清楚如何获得与文件组级别一样的细粒度。

select 
    SchemaName = sh.name, 
    TableName = t.name, 
    IndexName = i.name, 
    PartitionNumber = p.partition_number,
    IndexID = i.index_id,
    IndexDataspaceID = i.data_space_id,
    AllocUnitDataspaceID = au.data_space_id,
    PartitionRows = p.rows
from sys.allocation_units au
join sys.partitions p
    on au.container_id = p.partition_id
join sys.indexes i 
    on i.object_id = p.object_id
    and i.index_id = p.index_id
join sys.tables t 
    on p.object_id = t.object_id
join sys.schemas sh
    on t.schema_id = sh.schema_id
where sh.name != 'sys'
    and au.type = 2
union all 
select 
    sh.name, 
    t.name, 
    i.name, 
    p.partition_number,
    i.index_id,
    i.data_space_id, …
Run Code Online (Sandbox Code Playgroud)

sql-server filegroups metadata compression sql-server-2014

13
推荐指数
1
解决办法
1077
查看次数

sys.dm_db_index_usage_stats 中的信息是否可靠

我正在从没有文档的旧系统中归档数据。幸运的我...

我想知道表的创建时间、上次访问时间等。我可以相信这个查询会给我正确的答案还是我首先需要检查一些参数?SQL Server 2008 R2:

 SELECT t.Name AS Tabelname, p.rows AS NoOfRows, MAX(us.last_user_lookup) AS LastUsed, t.create_date AS CreatedDate
FROM sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
LEFT JOIN --A lot of the tables did not have any records in this table
    sys.dm_db_index_usage_stats as us ON t.OBJECT_ID = us.OBJECT_ID
GROUP BY t.Name, p.rows, create_date
ORDER BY MAX(us.last_user_lookup) DESC
Run Code Online (Sandbox Code Playgroud)

sql-server metadata sql-server-2008-r2

11
推荐指数
1
解决办法
6141
查看次数

index_id &lt; 256000 有什么意义?

在我读到的某个教程中,作者正在sys.indexes根据谓词进行过滤index_id < 256000。这有什么作用?

index sql-server metadata catalog-views

11
推荐指数
1
解决办法
1062
查看次数

与 sys.allocation_units 中的表大小不匹配的 DATALENGTH 总和

我的印象是,如果我要对DATALENGTH()表中所有记录的所有字段求和,我将得到表的总大小。我错了吗?

SELECT 
SUM(DATALENGTH(Field1)) + 
SUM(DATALENGTH(Field2)) + 
SUM(DATALENGTH(Field3)) TotalSizeInBytes
FROM SomeTable
WHERE X, Y, and Z are true
Run Code Online (Sandbox Code Playgroud)

我在下面使用了这个查询(我从网上得到的表大小,聚集索引,所以它不包括 NC 索引)来获取我的数据库中特定表的大小。出于计费目的(我们按部门使用的空间量收费),我需要计算出每个部门在此表中使用了多少空间。我有一个查询来标识表中的每个组。我只需要弄清楚每个组占用了多少空间。

由于VARCHAR(MAX)表中的字段,每行的空间可能会剧烈波动,所以我不能只取平均大小 * 部门的行数比率。当我使用上述DATALENGTH()方法时,我只能获得下面查询中使用的总空间的 85%。想法?

SELECT 
s.Name AS SchemaName,
t.NAME AS TableName,
p.rows AS RowCounts,
(SUM(a.total_pages) * 8)/1024 AS TotalSpaceMB, 
(SUM(a.used_pages) * 8)/1024 AS UsedSpaceMB, 
((SUM(a.total_pages) - SUM(a.used_pages)) * 8)/1024 AS UnusedSpaceMB
FROM 
    sys.tables t with (nolock)
INNER JOIN 
    sys.schemas s with (nolock) ON s.schema_id = t.schema_id
INNER JOIN      
    sys.indexes i with (nolock) ON t.OBJECT_ID …
Run Code Online (Sandbox Code Playgroud)

sql-server data-pages clustered-index metadata database-internals

11
推荐指数
2
解决办法
3870
查看次数

av$ view 和它的 dba_ 等价物有什么区别?

v$视图与其dba_等价物之间的一般区别是什么?举个例子来说,v$tablespacedba_tablespaces

oracle metadata view

10
推荐指数
1
解决办法
8046
查看次数

为什么不应该使用 INFORMATION_SCHEMA 视图来确定对象的架构?

根据 MS-DOCS about System information schema views,架构列定义有一个警告说明:

**重要** 不要使用 INFORMATION_SCHEMA 视图来确定对象的架构。查找对象架构的唯一可靠方法是查询 sys.objects 目录视图。

为什么不能使用 INFORMATION_SCHEMA 视图来确定对象的架构?

这个信息有误吗?

schema sql-server metadata information-schema sql-server-2017

10
推荐指数
1
解决办法
311
查看次数