小编Jer*_*acs的帖子

如何确定 PostgreSQL 中表的排序规则?

我想编写一个检查 PostgreSQL 表中使用的排序规则的脚本,但谷歌搜索Postgresql detect collation对我来说效果不佳,而且文档并没有让搜索变得容易。

谁能告诉我如何检查这个?

postgresql collation dml ddl

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

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

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

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

postgresql metadata ddl functions owner

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

如何设置和获取自定义数据库变量?

使用PGAdmin IIII 可以右键单击数据库,导航到Variables选项卡,然后在数据库本身上放置一个变量名-值属性。有没有办法自定义这些?我看到了一个application_name变量,但我想要一个application_version变量。

postgresql

9
推荐指数
2
解决办法
9398
查看次数

将索引添加到聚集列存储索引表是否有意义?

问题与this one类似,但答案似乎没有回答这个问题。

我对聚集列存储表的理解(如果我错了,请纠正我)是每列都以某种物理排序的方式存储,这意味着每列已经有相当于聚集索引的内容。如果是这种情况,那么在表上添加更多索引就没有多大意义了……或者是吗?也许是一个综合指数?

我的想法是否正确?

sql-server clustered-index columnstore

7
推荐指数
1
解决办法
993
查看次数

PostgreSQL 8.4:如何判断是否安装了过程语言?

我有一个安装程序,需要 plpgsql 在 PostgreSQL 8.4 数据库中安装存储过程。我需要确保安装了语言,否则应用程序将失败。我不想放弃语言并重新添加它,因为这可能会搞砸其他一些事情。

有没有办法“轻轻”安装语言?
CREATE LANGUAGE IF NOT EXISTS似乎无效。

postgresql plpgsql functions postgresql-8.4 postgresql-extensions

6
推荐指数
1
解决办法
4514
查看次数

无法收缩事务日志

这里有点令人头疼。

我有一个数据少于 1GB 的数据库,但有一个 40GB 的日志文件。事务日志每天备份,这个数据库没有很多活动;大约每周一次,它记录新的工资单信息,然后为报告目的反刍这些数据。数据库设置为自动收缩。

运行sp_spaceused @updateusage = true产生以下信息:

database_name   database_size   unallocated space
PayrollImports  39412.06 MB 105.00 MB

reserved    data    index_size  unused
321728 KB   278640 KB   42816 KB    272 KB
Run Code Online (Sandbox Code Playgroud)

运行DBCC shrinkfile (N'PayrollImports_log', 1 , notruncate)产生以下结果:

DbId    FileId  CurrentSize MinimumSize UsedPages   EstimatedPages
19  2   4991088 3456    4991088 3456
Run Code Online (Sandbox Code Playgroud)

...之间的差异UsedPagesEstimatedPages被神秘,但我继续DBCC shrinkfile (N'PayrollImports_log', 1 , truncateonly),并得到:

DbId    FileId  CurrentSize MinimumSize UsedPages   EstimatedPages
19  2   4991088 3456    4991088 3456
Run Code Online (Sandbox Code Playgroud)

在这一点上没有任何改变。日志文件仍然是 40GB。所以我想,也许我有一些公开的交易。运行dbcc …

sql-server-2005 sql-server maintenance transaction-log

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

在 PostgreSQL 中创建一个非序数数字 ID

如果我在 PostgreSql 中声明一列serial,它将按顺序自动递增。由于回滚等原因,最终结果可能不连续,但或多或​​少是有序的。

我有一个用户表,其中用户 ID 设置为serial,因此从 1 开始递增...但我宁愿它们不是,因为这似乎要求某种序列号攻击。

是否有一种相对简单、相对高效的方法可以在 PostgreSQL 中创建自动人工 ID,使 ID 随机间隔开,并且您不应该期望 ID 987654321 位于 ID 987654320 后面?

postgresql primary-key uniqueidentifier

0
推荐指数
1
解决办法
2538
查看次数