小编noo*_*ber的帖子

postgresql - 索引如何以及为什么比它们的表大

我正在使用 postgresql 9.3 并试图了解索引如何以及为什么比它们的表大。

示例输出:

 database_name | database_size |                          table_name                          | table_size | indexes_size | total_size
---------------+---------------+--------------------------------------------------------------+------------+--------------+------------
 foo_12345 | 412 MB        | "foobar_dev_12345"."fact_mobile_sends"                       | 57 MB      | 131 MB       | 189 MB
 foo_12345 | 412 MB        | "foobar_dev_12345"."fact_mobile_started"                      | 17 MB      | 39 MB        | 56 MB
 foo_12345 | 412 MB        | "foobar_dev_12345"."fact_mobile_stopped"                      | 16 MB      | 35 MB        | 51 MB
Run Code Online (Sandbox Code Playgroud)

我正在运行以下查询以获取表和索引大小。

SELECT
    table_catalog AS database_name,
    pg_size_pretty(pg_database_size(current_database())) As database_size,
    table_name,
    pg_size_pretty(table_size) AS table_size,
    pg_size_pretty(indexes_size) AS indexes_size,
    pg_size_pretty(total_size) AS total_size …
Run Code Online (Sandbox Code Playgroud)

postgresql performance postgresql-9.3 postgresql-performance

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

postgresql 中的存储过程与函数,哪个更适合执行 dml 语句

我正在使用 postgresql 9.3。如果我想添加以下步骤并将这些步骤作为例程调用,使用函数或存储过程会更好吗?

我的基本步骤是:

RENAME TABLE FOOBAR_1234.table1_org TO FOOBAR_1234.table1_old;
DELETE FOOBAR_1234.table1_old WHERE 1=1;
RENAME TABLE FOOBAR_1234.table1 TO FOOBAR_1234.table1_org;
Run Code Online (Sandbox Code Playgroud)

我还需要像1234使用任何 ID一样灵活地参数化ID,例如5678

如果你有一个例子,那也会有帮助。

postgresql stored-procedures postgresql-9.3

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

postgresql - 向用户授予架构

我有 (2) 个 postgresql 数据库。我基本上使用相同的 pg_dump 导出文件在不同的机器上创建 (2) db。DDL 是相同的,但是,我收到了no relations其中之一的消息。search_path 设置正确。我相信我错过了让我的(2)个用户看到这个模式的授权。Host2 上的设置是正确的。我只是不知道使用哪个赠款。

信息:

mra_prd_99999=> \dt
No relations found.
Run Code Online (Sandbox Code Playgroud)

主机 1:

mra_prd_99999=> \z
                                                   Access privileges
      Schema       |           Name            | Type  |          Access privileges          | Column access privileges
-------------------+---------------------------+-------+-------------------------------------+--------------------------
 mra_dev_schm_99999 | abc_bounce_category       | table | mra_prd_99999=arwdDxt/mra_prd_99999 |
Run Code Online (Sandbox Code Playgroud)

主机 2:

mra_prd_99999=> \z
                                                        Access privileges
      Schema       |           Name            | Type  |              Access privileges               | Column access privileges
-------------------+---------------------------+-------+----------------------------------------------+--------------------------
 mra_dev_schm_99999 | abc_bounce_category       | table | mra_prd_99999=arwdDxt/mra_prd_99999         +|
                   |                           |       | mra_prd_99999_user1=arwdDxt/mra_prd_99999+|
                   | …
Run Code Online (Sandbox Code Playgroud)

postgresql

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

Teradata 数据库无法增加永久空间中的数据库大小

任何有teradata数据库经验的人?我是这个数据库的新手,我的任务是增加数据库的大小。我正在使用 Teradata Administrator 来执行此操作。我正在使用Tools > Modify Database然后增加 Perm 空间的大小。

尝试修改数据库以增加大小时,我收到以下错误消息:

3541: The request to assign new PERMANENT space is invalid
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的理解是关键是在 DBC 中有足够的空间。我使用的数据库是父 (DBC) 的子数据库。

我可以从运行查询中看到,由于 DBC 足够大,我应该有足够的大小来增加我的数据库。

例子:

select sum(currentperm) c1, sum (maxperm) c2, c2-c1 from dbc.diskspace;
Run Code Online (Sandbox Code Playgroud)

结果:

currentperm         maxperm                 c2-c1
293,696,239,616.00  2,382,684,039,413.76    2,088,987,799,797.76
273.525938          2219.047434             1945.521496
Run Code Online (Sandbox Code Playgroud)

这告诉我 DBC 中有 1.9TB 可用空间。我读对了吗?我有足够的空间。那么为什么我不能增加我的数据库呢?

teradata

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