我想知道"位图堆扫描"的原理,我知道当我OR在条件中执行查询时经常发生这种情况.
谁能解释"位图堆扫描"背后的原理?
在Oracle中,SQL语句将缓存在shared_pool中,经常选择的数据将缓存在db_cache中.
PostgreSQL做什么?SQL语句和数据是否会缓存在shared_buffers中?
我想创建一个Multicolumn表达式索引,但是当我创建索引时,会输出以下消息:
--detail message
wapgrowth=> create index CONCURRENTLY idx_test on tmp_table using btree (skyid, to_char(create_time, 'YYYY-MM-DD'), actiontype );
ERROR: functions in index expression must be marked IMMUTABLE
--table ddl
wapgrowth=> \d tmp_table
Table "wapgrowth.tmp_table"
Column | Type | Modifiers
-------------+-----------------------------+---------------
id | integer | not null
actiontype | character varying(20) |
apptype | character varying(20) |
score | integer |
create_time | timestamp without time zone | default now()
skyid | integer |
Indexes:
Run Code Online (Sandbox Code Playgroud) 我阅读了官方的解释,但我仍然不能很好地理解参数。有人可以解释参数 autovacuum_naptime 吗?多谢 !
我们的PostgreSQL SERVER版本8.4中有一个奇怪的SQL.它看起来像是PG服务器执行的系统sql!我不知道这个sql?谁知道这个?
--Strange sql
SELECT NULL AS TABLE_CAT,
n.nspname AS TABLE_SCHEM,
c.relname AS TABLE_NAME,
CASE n.nspname ~ '^pg_' OR n.nspname = 'information_schema'
WHEN true THEN
CASE
WHEN n.nspname = 'pg_catalog' OR n.nspname = 'information_schema' THEN
CASE c.relkind
WHEN 'r' THEN 'SYSTEM TABLE'
WHEN 'v' THEN 'SYSTEM VIEW'
WHEN 'i' THEN 'SYSTEM INDEX'
ELSE NULL
END
WHEN n.nspname = 'pg_toast' THEN
CASE c.relkind
WHEN 'r' THEN 'SYSTEM TOAST TABLE'
WHEN 'i' THEN 'SYSTEM TOAST INDEX'
ELSE NULL
END
ELSE
CASE c.relkind …Run Code Online (Sandbox Code Playgroud)