vertica优化.docx
- 文档编号:29000460
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:8
- 大小:65.24KB
vertica优化.docx
《vertica优化.docx》由会员分享,可在线阅读,更多相关《vertica优化.docx(8页珍藏版)》请在冰豆网上搜索。
vertica优化
1分析工作负载analyze_workload()
analyze_workload(scope,since_time,result)
工作负载器可用于分析SQL系统表中的系统信息,能监控SQL查询性能、工作负载历史记录、资源和配置,以找出查询性能不佳的根本原因。
参数:
(1)scope范围参数,可选3种:
●‘’(空字符串):
返回所有数据库对象
●table_name:
返回特定表
●schema_name:
指定架构中的所有对象
(2)since_time,指开始时间
例子:
selectanalyze_workload(‘t1’,TIMESTAMP‘2014-10-0411:
18:
15’);
selectanalyze_workload(‘’,now()-interval‘1week’);(今天以前一周以来)
(3)result结果,有两个可选值:
●true:
保存函数结果,并且analyze_workload的随后调用仅分析自上次保存已返回的数据以来的事件,并忽略所有之前的事件。
●false:
不保存任何结果。
调用函数后产生的结果:
(1)observation_count
返回一个代表WLA为此优化建议观察到的事件总数的整数。
(2)Tuning_parameter
返回WLA建议您对其应用优化操作的对象。
(3)Tuning_description
返回您应当考虑的任务的简短描述。
(4)tuning_command
返回可以运行的SQL命令。
(5)tuning_cost
返回基于WLA给出的优化建议的类型,可以为LOW/MEDIUM/HIGH。
LOW:
成本对运行优化命令的资源影响最小,可以随时执行优化操作。
MEDIUM:
成本对运行优化命令的资源具有中等影响。
HIGH:
成本对运行优化命令的资源影响最大。
根据数据库或表大小,考虑在几小时后而不是在负载峰值时段执行开销较大的操作。
查看系统表获取建议
可以查询系统表v_monitor.tuning_recommendations获取优化建议。
这样将从上一次analyze_workload()调用返回优化建议结果。
调优实例
selectanalyze_workload('yldm.t_l1_dm_doctormonthdata_12m',false)
tuning_command:
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.YLLEVEL');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.YEAR');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.STDDEPTNAME');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.PRODCLASS');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.ORGREPNAME');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.ORGNAME');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.MONTH');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.FIVE_LEVEL');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.DEPTNAME');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.BUSITYPE_NAME');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.AREA2NAME');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.AREA1NAME_OLD');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.AREA1NAME');
selectanalyze_statistics('yldm.T_L1_DM_DOCTORMONTHDATA_12M.AREA1CODE');
selectanalyze_workload('yldm.t_l1_manage_sale',false)
结果:
tuning_command:
selectanalyze_statistics('yldm.T_L1_MANAGE_SALE.DEPT1NAME');
tuning_description:
rundatabasedesignerontableyldm.T_L1_MANAGE_SALE;
rundatabasedesignerontableyldm.T_DM_MAP_CITY_DOCTOR
rundatabasedesignerontableyldm.T_DM_MAP_COUNTY_DOCTOR;
2运行DatabaseDesigner
后台运行DBD
DBD=DatabaseDesigner,是Vertica数据库优化中最主要的原生工具。
首先运行admintools工具,按下面步骤依次执行:
1.选择"6ConfigurationMenu"
2.选择"2RunDatabaseDesigner"
3."Selectadatabasefordesign"选择需要分析的数据库
4."EnterdirectoryforDatabaseDesigneroutput:
"输入dbd的输出目录
5."Designername:
"输入dbd的名字,随意起
6."DesignType[Comprehensive|Query-specific]"选择dbd的设计类型,有两个单选项,根据实际需求选择
7."Selectschema(s)fordesign"选择需要设计的shema(s)
8."Designoptions[Optimizewithqueries|Updatestatistics|Deploydesign]"这里有三个复选项,推荐先去掉Deploydesign,之后可以手工应用dbd的建议
9."Enterthefullpathforqueriesfile"输入业务常用到的sql查询语句,使得dbd的分析更有针对性
10."ProposedK-safetyvalue:
1"这里默认即可
11."Selectstoragefootprintpreference[Balancedquery/loadperformance|Queryperformance(largerfootprint)|Loadperformance(smallerfootprint)]"这里有三个单选项,根据实际需求选择,一般选择第一项,均衡兼顾查询和加载性能
12."Proceed"执行dbd
13."DatabaseDesignerstarted."dbd已经开始,会有类似下面的输出,直到完成dbd
查询或取消正在执行的DBD:
Design 'v_dbd_0503_1' is running To check progress:
execute select * from v_monitor.design_status; or select * from v_monitor.deploy_status;
To Cancel:
execute select dbd_cancel_populate_design('v_dbd_0503_1','v_dbd_0503_1');
3Vertica日志
(1)数据库正在运行时,群集中的每个节点都将消息写入名为vertica.log的日志文件中。
路径:
tail-fcatalog-path/database-name/node-name_catalog/vertica.log
在我们的环境中,路径是:
/data/YLvertica/v_ylvertica_node0001_catalog/vertica.log
监控资源池使用
Linuxtop命令可以查看系统中的总体CPU使用情况和I/O等待时间,但是受文件系统缓存机制影响,top指示的常驻内存大小并不能很好地说明实际内存使用情况或可用预留。
(1)resource_pool表
可以查看在系统中定义的各种资源池,通过resource_pool_status表可以查看资源池的当前状态。
selectname,memorysize,maxmemorysizefromv_catalog.resource_pools;
查看用户定义的资源池:
selectname,memorysize,maxmemorysize,priority,maxconcurrencyfromv_catalog.resource_poolswhereis_internal='f';
查看资源池的状态:
dbadmin=>\x
Expandeddisplayison.
dbadmin=>
selectpool_name,memory_size_kb,memory_size_actual_kb,memory_inuse_kb,general_memory_borrowed_kb,running_query_countfromv_monitor.resource_pool_statuswherenode_namelike'%node0001';
查看查询获取的资源:
selectpool_name,thread_count,open_file_handle_count,memory_inuse_kb,queue_entry_timestamp,acquisition_timestamp
fromv_monitor.request_acqusitionswherenode_namelike‘%node0001’;
4.数据收集器(DC)
数据收集器可以收集和保留重要系统活动的历史记录,并记录基本性能和资源利用率计数器。
可以使用数据收集器所保留的信息查询系统表的过去状态并提取聚合信息,还可以执行以下操作:
●查看用户已采取哪些操作
●找出性能瓶颈
●确定vertica配置的潜在改进
DC不会收集以关闭节点的数据,因此没有可用于此类节点的历史数据。
DC收集的数据存储在磁盘vertica/catalog路径下的DataCollector目录中。
该目录还包含有关如何将监控数据加载到其他Vertica数据库的说明。
数据收集器默认出于打开状态,超级用户可以随时禁用数据收集器。
数据收集器表带有前缀dc_,位于v_internal架构中
4定位vertica操作记录
vertica有个表T_L1_DM_AREADATA数据突然被清空,从数据库中查看session记录:
select*fromsessionswheretransaction_descriptionlike'%T_L1_DM_AREADATA%';
从查询结果中,可以看到在2018-11-248:
33有对T_L1_DM_AREADATA表的insert操作。
从后台查看日志:
/data/YLvertica/v_ylvertica_node0001_catalog目录下,查看vertica.log。
搜索关键字truncate,可以找到与该表相关的truncate语句,记录操作时间:
查看centos的登陆记录:
who/var/log/wtmp
可以定位到IP为:
172.16.145.22.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vertica 优化