重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 郑全
打印 上一主题 下一主题

PGCA-090考试题解

[复制链接]
21#
 楼主| 发表于 2024-12-1 15:08:00 | 只看该作者
21. 在PostgresSQL中,参数默认的情况下,可建立多少个连普通用户最多接?

A. 100       
B. 103       
C. 97       
D. 3

答案:C

解析:
   本题可以参见官方文档 20.3.1. Connection Settings #
   普通用户可建立多少个连接,是由 max_connections - reserved_connections - superuser_reserved_connections 决定的。
    新安装的系统, max_connections 默认为 100, reserved_connections 默认为0, superuser_reserved_connections  默认为 3 ,所以,普通用户默认为97. 因此,本地选择 C。

回复 支持 反对

使用道具 举报

22#
 楼主| 发表于 2024-12-1 15:16:05 | 只看该作者
22. 在PostgresSQL的内存配置项参数中,用于声明内部排序操作和Hash表在开始使用临时磁盘文件之前可使用的内存数目的参数是什么?

A. shared_buffers       
B. temp_buffers       
C. work_mem       
D. autovacuum_work_mem

答案: C

解析:
    1.shared_buffers ---共享缓冲区,它表示数据缓冲区中的数据块的个数
    2.temp_buffers---临时缓冲区,用于存放数据库会话访问临时表数据
    3.work_mem --工作内存或者操作内存,负责内部的sort和hash操作
    4.autovacuum_work_mem-- 维护工作内存,主要针对VACUUM,CREATE INDEX,ALTER TABLE ADD FOREIGN KEY等操作
   


回复 支持 反对

使用道具 举报

23#
 楼主| 发表于 2024-12-1 15:39:50 | 只看该作者
23. 在PostgresSQL的日志配置项参数中,用于打开日志的参数是哪个?

A. log_destination       
B. logging_collector       
C. log_file_mode       
D. log_filename

答案: B

解析:
     log_destination :设置日志的目录
     logging_collector: 控制是否打开日志开关
     log_file_mode: 日志目录的权限,默认是 0600,只有postgres用户本身能写。
     log_filename: 日志文件的格式。

     所以,本题选择 B .


回复 支持 反对

使用道具 举报

24#
 楼主| 发表于 2024-12-1 15:47:31 | 只看该作者
24. PostgresSQL数据库启动时,会先启动哪个进程?

A. BgWriter       
B. postgres       
C. Postmaster       
D. PgStat

答案: C

解析:
    PG数据库启动时会先启动一个主进程,9.3之前称为postmaster,9.3以后称为postgres server process),然后fork出一些辅助子进程(backend、backgroud相关进程)
   
    这里的 BgWriter ,PgStat 是后台进程,
    postgres 是后端backend 进程,
    Postmaster        这里就是主进程,在PG15以后,直接看不到了,但概念还是它。
回复 支持 反对

使用道具 举报

25#
 楼主| 发表于 2024-12-1 16:09:57 | 只看该作者
25. 以下说法是否正确:在PostgresSQL9.3之后,PostgresSQL使用“mmap()”方式的共享内存。使用这种共享内存的好处是不再需要配置内核参数"kernel.shmmax"和"kernel.shmall"。

A. 正确       
B. 不正确

答案: A

解析:
    使用 SHOW shared_memory_type ; 可以看到当前的使用类型,从9.3 开始,默认为 mmap,memory mapped,不需要单独设置 kernel.shmmax和kernel.shmall

回复 支持 反对

使用道具 举报

26#
 楼主| 发表于 2024-12-3 21:16:37 | 只看该作者
本帖最后由 郑全 于 2024-12-3 21:23 编辑

26. 在PostgresSQL的以下索引中,最常见的索引并且适合处理等值查询和范围查询的索引是哪个?

A. B-tree        
B. Hash        
C. GiST        
D. SP-GiST        
E. GIN

答案: A

解析:
   1.BTREE索引
      CREATE INDEX默认使用BTREE索引,适合按照顺序存储的数据进行比较查询和范围查询,查询优化器会优先考虑使用BTREE索引,如果涉及到以下任何一种操作:

    1)<,<=,=,>,>=
    2)以及这些操作的组合,比如between and,也可以使用BTREE。
    3)在索引列上的IS NULL 或者IS NOT NULL也可以使用BTREE。
    4)BTREE索引也可以用于模糊查询,但是仅限字符串开头是常量的情况下,比如 name LIKE ‘Jason%’,或者name ~ ’^Jason’。但是name LIKE ‘%Jason’是不能用的。
    5)Min/Max聚集操作也可使用BTREE索引。
    6)其实在merge join以及order by中,可以通过使用BTREE索引的有序性来减少sort带来的代价。
      
   2.Hash索引:
只能处理简单的等值比较,当索引列涉及到等于操作比较时,优化器会考虑使用Hash索引。Hash索引是通过比较hash值来查找定位,如果hash索引列的数据重复度比较高,容易产生严重的hash冲突,从而降低查询效率,因此这种情况下,不适合hash索引。
   3. GiST-(GeneralizedSearch Tree) 索引
不是独立的索引类型,是一种架构或者索引模板,是一棵平衡二叉树。适用于多维数据类型和集合数据类型,和Btree索引类似,同样适用于其他的数据类型。GiST可以用来做位置搜索,如包含、相交、左边、右边等。和Btree索引相比,GiST多字段索引在查询条件中包含索引字段的任何子集都会使用索引扫描,而Btree索引只有查询条件包含第一个索引字段才会使用索引扫描。GiST索引特定操作符类型高度依赖于索引策略(操作符类)。GiST跟Btree索引相比,索引创建耗时较长,占用空间也比较大。
  4. SP-GiST-(space-partitioned GiST)  索引
和GiST类似,但是是一棵不平衡树,支持多维和海量数据,把空间分割成互不相交的部分。SP-GiST适用于空间可以递归分割成不相交区域的结构,包括四叉树、k-D树和基数树。
  5.  GIN- (Generalized InvertedIndex)索引
倒排序索引,适合于包含多个组成值的数据,比如数组,全文检索等。用来保存一个键值对的集合,支持用户定义的索引策略,对于不同的索引策略,可以使用不同的操作符。
  6. BRIN- (Block Range Index)索引
块范围索引,它将数据在磁盘上的block按照一定的数目进行分组,分组之后,计算每组的取值范围。在查找数据时,会遍历这些取值范围,排除掉不在范围之内的分组。BRIN索引适用于存储流式数据日志。例如:按照时间插入的数据,由于数据是按照时间插入,因此数据块上记录的范围信息很少会出现交叉情况,索引过滤后需要比较的数据块也会少很多;反之,如果数据交叉严重,通过索引无法过滤掉任何一个数据块时,操作起来会比全表扫描更加耗时。
回复 支持 反对

使用道具 举报

27#
 楼主| 发表于 2024-12-3 21:17:51 | 只看该作者
27. 在PostgresSQL的以下索引中,只能处理简单的等值查询的索引是哪个?

A. B-tree      
B. Hash      
C. GiST      
D. SP-GiST      
E. GIN

答案: B

解析:
      见上一题。
回复 支持 反对

使用道具 举报

28#
 楼主| 发表于 2024-12-3 21:19:50 | 只看该作者
28. 在PostgresSQL的以下索引中,下面哪个是反转索引?

A. B-tree      
B. Hash      
C. GiST      
D. SP-GiST      
E. GIN

答案: E

解析:
     见上上题。
回复 支持 反对

使用道具 举报

29#
 楼主| 发表于 2024-12-3 21:27:20 | 只看该作者
29. PostgresSQL是否能够自动检测到死锁,然后退出其中一个事务?

A. 是       
B. 否

答案: A

解析:
     和ORACLE一样,自动检测死锁。

回复 支持 反对

使用道具 举报

30#
 楼主| 发表于 2024-12-3 21:36:49 | 只看该作者
30. PostgresSQL的时间类型是否可以精确到秒以下?

A. 是       
B. 否

答案: A

解析:
   time,timestamp 都可以到微妙。
   
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-12-27 14:09 , Processed in 0.086112 second(s), 16 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表