【【DB笔试面试645】在Oracle中,当收集表的统计信息时应该注意哪些问题?】教程文章相关的互联网学习教程文章

java面试题:如果一串字符如"aaaabbc中国1512"要分别统计英文字符的数量,中文字符的数量,和数字字符的数量,假设字符中没有中文字符、英文字符、数字字符之外的其他特殊字符。【代码】【图】

package com.swift;publicclass TotalNumber_String {publicstaticvoid main(String[] args) {/** 如果一串字符如"aaaabbc中国1512"要分别统计英文字符的数量,中文字符的数量,和数字字符的数量,* 假设字符中没有中文字符、英文字符、数字字符之外的其他特殊字符。*/String str="aaaabbc中国1512";int engishCount = 0;int chineseCount = 0;int digitCount = 0;for(int i=0;i<str.length();i++){char ch = str.charAt(i);if(Cha...

Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)【代码】

1 import java.util.HashMap;2 import java.util.Map;3 import java.util.Scanner;4 5 /**6 * 目标 : 输出一个字符串中每个字符出现的次数.(经典面试题).7 * 8 * @author Administrator9 * 10 */ 11 public class MapDemo01 { 12 13 public static void main(String[] args) { 14 // TODO Auto-generated method stub 15 // 1 键盘录入一个字符串 16 Scanner name = new Scanner(System.in); 17 ...

Python经典面试题——使用Python统计用户输入的字符或字母出现的次数 不重复地保存在字典中

# -*- coding: utf-8 -*- __author__ = 'lostsakura' __date__ = '2019/8/16 21:33'# 统计一串字符中每个字符出现的次数# 获取用户输入的多字符列表 char_list = input('请输入多个字符的串:').split()# 最终的结果字典 user_dict = {}# 循环 列表元素个数 次 for i in range(len(char_list)):#if char_list[i] in list(user_dict.keys()):# 不是第一次检索到该字符 赋元素出现的次数user_dict[char_list[i]] = char_list.count(c...

【DB笔试面试643】在Oracle中,如何查询表和索引的历史统计信息?【代码】【图】

? ? ? ? ? ?题目 ? ? ? ? 部分在Oracle中,如何查询表和索引的历史统计信息?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?从Oracle 10g开始,当收集表的统计信息的时候,旧的统计数据被保留,如果因为新的统计信息而出现性能问题,旧的统计信息就可以被恢复。历史统计信息保存在以下几张表中:l WRI$_OPTSTAT_TAB_HISTORY 表的统计信息l WRI$_OPTSTAT_IND_HISTORY 索引的统计信息l WRI$_OPTSTAT_HISTHEAD_HISTORY 列的统计信息l WRI$_OPTST...

【DB笔试面试628】Oracle的统计信息包括哪几种类型?【图】

? ? ? ? ? ?题目 ? ? ? ? 部分 Oracle的统计信息包括哪几种类型?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?Oracle数据库里的统计信息是一组存储在数据字典里,且从多个维度描述了数据库里对象的详细信息的一组数据。当Oracle数据库工作在CBO(Cost Based Optimization,基于代价的优化器)模式下时,优化器会根据数据字典中记录的对象的统计信息来评估SQL语句的不同执行计划的成本,从而找到最优或者是相对最优的执行计划。所以,可以说...

【DB笔试面试639】在Oracle中,什么是多列统计信息(Extended Statistics)?【图】

? 题目 部分在Oracle中,什么是多列统计信息(Extended Statistics)? ? 答案部分 Oracle优化器对于基数值的估算是否准确关系到能否生成最优的执行计划,而基数值估算的准确性又取决于SQL中各个对象的统计信息是否完整、是否能真实反映出对象的数据分布情况。因此使用何种方法收集统计信息是很有讲究的:对于数据倾斜度较大的表需要收集直方图,在此基础上如果有多个列存在相关性,那么多...

【DB笔试面试633】在Oracle中,什么是待定的统计信息(Pending Statistic)?【代码】【图】

? ? ? ? ? ?题目 ? ? ? ? 部分在Oracle中,什么是待定的统计信息(Pending Statistic)?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?在数据库系统运维中,DBA常常希望维持SQL执行计划的稳定。很多DBA和开发人员对于Hint的依赖,很大程度上也是源于在CBO情况下,执行计划对于统计量过于依赖,容易形成不稳定执行计划。所以,SQL语句执行计划的稳定性,就变成统计信息的稳定性问题。更进一步,就是新的统计信息更新,无论是手动收集还是自动...

【DB笔试面试632】在Oracle中,如何锁住统计信息?【代码】【图】

? ? ? ? ? ?题目 ? ? ? ? 部分在Oracle中,如何锁住统计信息?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?Oracle会自动收集表的统计信息,大部分情况下,这种行为是有利的。当不需要对某个表做收集的时候,可以采用锁定统计信息的方法,把不需要收集的表排除在外,这样可以使得此表上的统计信息不变,如下所示:1EXEC DBMS_STATS.LOCK_TABLE_STATS(); --表 2EXEC DBMS_STATS.LOCK_PARTITION_STATS(); --分区表 3EXEC DBMS_STATS.LOCK_SCH...

【DB笔试面试647】在Oracle中,使用SPLIT来拆分某个分区的时候,其拆分出来的新分区的统计信息行数是多少?【代码】【图】

? ? ? ? ? ?题目 ? ? ? ? 部分在Oracle中,使用SPLIT来拆分某个分区的时候,其拆分出来的新分区的统计信息行数是多少?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?在分区分裂时,新分区的统计信息会继承原分区的统计信息值。若原分区的统计信息为空,则新分裂出来的分区统计信息也为空。所以,建议对SPLIT出来的新分区重新收集统计信息。收集分区表某个分区的SQL如下所示:1DBMS_STATS.GATHER_TABLE_STATS(USER,TB_NAME,PARTNAME=>PT_PART...

【DB笔试面试645】在Oracle中,当收集表的统计信息时应该注意哪些问题?【图】

? ? ? ? ? ?题目 ? ? ? ? 部分 在Oracle中,当收集表的统计信息时应该注意哪些问题?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?关于收集统计信息需要注意以下几点:① 对于数据量不大的OLTP类型的系统,建议使用自动收集统计信息,并对一些特殊的大表写JOB定时收集统计信息。如果是数据量很大的OLAP或者DSS系统,那么建议DBA自己写JOB脚本来收集统计信息。② 在导入大量数据后应及时收集统计信息后才能进行相关的后续业务处理(包括查询...

【DB笔试面试641】在Oracle中,新建索引后统计信息是否自动收集?【代码】【图】

? 题目 部分在Oracle中,新建索引后统计信息是否自动收集? ? 答案部分 在Oracle 10g后有个隐含参数“_OPTIMIZER_COMPUTE_INDEX_STATS”,意思是是否对新建索引收集统计信息,该参数默认是TRUE,表示默认收集新建索引的统计信息。示例如下所示: 1SQL> create table testidx(id number); 2 3Table created. 4 5SQL> create index idx_11 on testidx(id); 6 7Index created. 8 9SQL> SELECT d.LAST_A...

【DB笔试面试643】在Oracle中,如何查询表和索引的历史统计信息?【代码】【图】

? 题目 部分在Oracle中,如何查询表和索引的历史统计信息? ? 答案部分 从Oracle 10g开始,当收集表的统计信息的时候,旧的统计数据被保留,如果因为新的统计信息而出现性能问题,旧的统计信息就可以被恢复。历史统计信息保存在以下几张表中:l WRI$_OPTSTAT_TAB_HISTORY 表的统计信息l WRI$_OPTSTAT_IND_HISTORY 索引的统计信息l WRI$_OPTSTAT_HISTHEAD_HISTORY 列的统计信息l WRI$_OPTSTAT_HISTGRM_HISTOR...

【DB笔试面试644】在Oracle中,如何并发地收集统计信息?【代码】【图】

? 题目 部分在Oracle中,如何并发地收集统计信息? ? 答案部分 对于大表的统计信息收集可以通过DEGREE参数使得扫描大表的时候进行并行扫描,从而加快扫描速度,缩短了收集统计信息的时间。但是,即使加了DEGREE参数,在收集统计信息的时候,还是进行一个表一个表的扫描,并没有并发的同时扫描多个表。在Oracle 11.2.0.2之后,有了一个参数,可以并发扫描表,这就是CONCURRENT参数。可以通过以下SQL语句查询数...

【DB笔试面试645】在Oracle中,当收集表的统计信息时应该注意哪些问题?【代码】【图】

? 题目 部分在Oracle中,当收集表的统计信息时应该注意哪些问题? ? 答案部分 关于收集统计信息需要注意以下几点:① 对于数据量不大的OLTP类型的系统,建议使用自动收集统计信息,并对一些特殊的大表写JOB定时收集统计信息。如果是数据量很大的OLAP或者DSS系统,那么建议DBA自己写JOB脚本来收集统计信息。② 在导入大量数据后应及时收集统计信息后才能进行相关的后续业务处理(包括查询和修改),否则可能...

【DB笔试面试647】在Oracle中,使用SPLIT来拆分某个分区的时候,其拆分出来的新分区的统计信息行数是多少?...【代码】【图】

? 题目 部分在Oracle中,使用SPLIT来拆分某个分区的时候,其拆分出来的新分区的统计信息行数是多少? ? 答案部分 在分区分裂时,新分区的统计信息会继承原分区的统计信息值。若原分区的统计信息为空,则新分裂出来的分区统计信息也为空。所以,建议对SPLIT出来的新分区重新收集统计信息。收集分区表某个分区的SQL如下所示:1DBMS_STATS.GATHER_TABLE_STATS(USER,TB_NAME,PARTNAME=>PT_PART_NAME,GRANULARITY...