| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 炫”库“行动-人大金仓有奖征文-人大金仓数据库管理系统使用与参数优化 -> 正文阅读 |
|
[大数据]炫”库“行动-人大金仓有奖征文-人大金仓数据库管理系统使用与参数优化 |
炫“库”行动,等你来战!2021年9月16日开始,csdn社区开始了炫“库”行动,各种精品大礼包等你来拿,详情参照炫”库“行动-人大金仓有奖征文。 前言人大金仓数据库管理系统KingbaseES(简称:金仓数据库或KingbaseES)是北京人大金仓信息技术股份有限公司自主研制开发的具有自主知识产权的通用关系型数据库管理系统。 人大金仓数据库架构和其它数据库相比,金仓数据库有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在 存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可 以根据业务的需求和实际需要选择合适的存储引擎。 最上层是一些客户端和连接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 tcp/ip 的 通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证 安全接入的客户端提供线程。同样在该层上可以实现基于 SSL 的安全链接。服务器也会为安全接入的每个客户端验 证它所具有的操作权限。 那么SQL语句便是链接数据库操作的灵魂,高效的SQL必然也会是对性能有较强的加持。 SQL语句SQL语句执行顺序手写SQL顺序 JDBC操作
参数优化max_connections shared_buffers shared_buffers 没有特定的推荐值,但是为特定系统确定值的计算并不特别困难。一般来说,对于专用DB服务器, shared_buffers 的值应该大约是总系统RAM的30%。 另外,虽然较大的 shared_buffers 值可以在’读繁重’用例中提高性能,但对于’写繁重’用例,较大的 shared_buffer 值可能是有害的,因为 shared_buffers 的全部内容必须在写期间处理。 effective_cache_size 建议,effective_cache_size设置系统内存 的 75%。 maintenance_work_mem 注意当自动清理运行时,可能会分配最多达这个内存的 autovacuum_max_workers 倍,因此要小心不要把该默认值设置得太高,通过单独设置autovacuum_work_mem,可能会对避免这种情况出现。将其设置为中等高值会提高vacuum和其他操作的效率。执行大型ETL操作的应用程序可能需要分配多达1/4的RAM来支持大容量真空。注意,每个autovacuum 进程可能使用这么多,所以如果使用多个autovacuum进程,您可能希望降低这个值,以便他们不能要求超过1/8或1/4的可用RAM。建议,maintenance_work_mem 通常设置为系统内存的 1/16,但是数据仓库系统可以设置为系统内存的 1/8。 checkpoint_completion_target 建议,checkpoint_completion_target可以设置为0.9(90%)。 wal_buffers 在每次事务提交时,WAL缓冲区的内容都被写到磁盘上,所以非常大的值不太可能有显著的好处。但是,将这个值设置为至少几个兆字节可以提高在许多客户机同时提交的繁忙服务器上的写性能。在大多数情况下,由缺省设置-1选择的自动调优应该会给出合理的结果。 在非常繁忙的高核机器上,将这个值提高到128MB是很有用的。 default_statistics_target 为不通过ALTER table set statistics设置列特定目标的表列设置默认统计目标。较大的值会增加ANALYZE所需的时间,但可能会提高计划者评估的质量。默认值为100。 大多数应用程序可以使用默认值100。对于非常小/简单的数据库,减少到10或50。数据仓库应用程序通常需要使用500到1000。否则,在每列的基础上增加统计目标。 random_page_cost 相对于seq_page_cost降低这个值将导致系统更倾向于索引扫描;提高它将使索引扫描看起来相对更昂贵。您可以同时提高或降低这两个值,以改变磁盘I/O成本相对于CPU成本的重要性。 对机械磁盘的随机存取通常比顺序存取cost昂贵得多。但是,使用较低的默认值(4.0),因为大多数对磁盘的随机访问,比如索引读取,都假定是在缓存中。默认值可以被认为是建模随机访问比顺序慢40倍,而预期90%的随机读取被缓存。如果您认为90%的缓存率对于您的工作负载是一个不正确的假设,那么您可以增加random_page_cost来更好地反映随机存储读取的真实成本。相应地,如果您的数据可能完全在缓存中,例如当数据库小于服务器总内存时,可以适当降低random_page_cost。相对于顺序存储,具有较低的随机读成本的存储,例如固态硬盘,也可以使用较低的random_page_cost值进行建模,例如,1.1。 尽管系统允许将random_page_cost设置为小于seq_page_cost,但这样做在物理上是不合理的。但是,如果数据库完全缓存在RAM中,那么设置它们相等是有意义的,因为在这种情况下,不按顺序访问页面不会受到负面影响。此外,在高缓存的数据库中,应该降低这两个值,因为获取RAM中已经存在的页面的成本比正常情况下要小得多。 建议,机械硬盘设置为 4, 固态硬盘设置为1.1, SAN存储设置为1.1。 effective_io_concurrency 但是,如果数据库经常因为并发会话中发出的多个查询而繁忙,那么较低的值可能足以使磁盘阵列保持忙碌。高于使磁盘繁忙所需的值只会导致额外的CPU开销。ssd和其他基于内存的存储通常可以处理许多并发请求,所以最好的值可能是几百。 建议,机械硬盘设置为 2, 固态硬盘设置为 200, SAN存储设置为 300。 work_mem 确保’ work_mem ‘值不要设置得太高是很重要的,因为在并行操作中,并发排序操作需要多份的’ work_mem ‘。由于这个重要的警告,理想的做法是将’ work_mem ‘的全局值设置为一个相对较低的值,然后修改任何特定查询本身,以使用更高的’ work_mem '值。 当查询调用排序、哈希或任何其他需要空间分配的结构时,都会分配work_mem,每个查询都可能发生多次。需要考虑的一件事是,不应让可用内存在边缘运行,避免OOM。总是需要留下某种类型的缓冲区,以防止内存使用高峰。所以work_mem中可用的最大内存应该是((RAM - shared_buffers) / (max_connections * 3) / max_parallel_workers_per_gather。 min_wal_size max_wal_size max_wal_size ,允许WAL在自动检查点期间增长的最大尺寸。除非数据库每小时写入的数据超过1GB,在这种情况下,增加日志的大小,使其至少相当于一个小时的日志 建议: WEB :min_wal_size = 1GB max_wal_size = 4GB max_worker_processes 运行备用服务器时,必须将该参数设置为与主服务器相同或更高的值。否则,备用服务器将不允许查询。 当更改此值时,请考虑同时调整max_parallel_workers、max_parallel_maintenance_workers和max_parallel_workers_per_gather。 增加到max_parallel_workers +其他workers,例如用于逻辑复制的workers和自定义后台workers。不过不会超过CPU的核数。 max_parallel_workers_per_gather 请注意,并行查询可能比非并行查询消耗更多的资源,因为每个工作进程是完全独立的进程,它对系统的影响与额外的用户会话大致相同。在为该设置选择值时,以及在配置其他控制资源利用率的设置(如work_mem)时,都应该考虑到这一点。资源限制(如work_mem)单独应用于每个worker,这意味着所有进程的总利用率可能比通常情况下任何单个进程的总利用率要高得多。例如,使用4个worker的并行查询使用的CPU时间、内存、I/O带宽等可能是完全不使用worker的查询的5倍。 计划使用并行查询,建议增加到4或8,这取决于核心/并发会话。 max_parallel_workers 如果您认为可以从并行查询,在DW系统中,设置为CPU核心数。 max_parallel_maintenance_workers 注意并行工具性命令不应该消耗比同等数量非并行操作更多的内存。这种策略与并行查询不同,并行查询的资源限制通常是应用在每个工作者进程上。并行工具性命令把资源限制 计划使用并行查询,建议增加到4或8,这取决于核心/并发会话。 |
|
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:27:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |