我正在使用 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
我正在使用 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。
如果你有一个例子,那也会有帮助。
我有 (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) 任何有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 可用空间。我读对了吗?我有足够的空间。那么为什么我不能增加我的数据库呢?