Posts

Showing posts from 2020

Using Application Algorithm to improve Database performance

RWP团队谈性能优化之大开眼界篇(二)应用程序算法 您觉得,应用程序的算法优化与否,最多能对系统性能有多大影响? A. 20-30% B. 50% C. 10倍左右 D. 100倍或更多 E. 没什么大影响吧 处理1行数据1ms,倒是挺快的,但是如果一行一行处理,处理万亿级别的数据的话,就要1ms * 1,000,000,000,000的时间,也就是32年的时间,32年之后处理完了,还能有什么意义呢? 这个计算,告诉我们,当需要处理的数据量很大的时候,用处理少量数据的办法(一行一行处理),就是不合适的了 Row by row(逐行)的数据处理方法,是一个进程处理数据,每次处理一行。对于小的数据集非常适合。处理大量数据的时候,就不适合了。 Arrays(数组)的数据处理方法,也是一个进程处理数据,每次处理一组数据。对于小的数据集非常适合,比row by row的方法效率高,因为减少了数据中网络上往返的时间,commit的时间,和客户端与服务器中的code path。 使用Arrays(数组)的方法,array size设多大比较合适呢?我们进行了demo. Demo里面有7个选手,每个选手用不同的array size向数据库里面插入数据: Demo中可以看到,4x选手(Array size = 4),比1x选手(Array size = 1,也就是row by row),处理速度快很多。这是因为Oracle数据库对于array interface是做了特别优化的,array interface和非array interface的code path是不同的 另外也可以看到,array size并不是越大越好。Array size只是定义了在数据库这个层面,每次处理的数据量,但是在客户端和数据库服务器之间,这些数据还要按照网络传输的单元去缓存和传输。所以当array size到达一定大小的时候,array size对性能大小的影响就没那么大了。Demo里面的后三个选手,用的时间都差不多。大家也不用纠结array size=4096好,还是4099好 Row by row和Arrays都是一个进程处理数据。 如果数据量大,系统上又有那么多资源,需要并行才能把资源用起来。现实中很多人的办法是,把原有的row by row或者arrays的代码拿过来,并行执行,这种方法称为手动...

Oracle Resource Management

RWP团队谈性能优化之大开眼界篇(三)资源管理 您觉得,在什么情况下需要进行资源管理? A. OLTP B. 报表查询 C. 混合工作负载 D. 什么情况都需要 E. 什么情况都不需要 资源管理是在任何情况都需要考虑的,可以使用的方法也很多 首先讨论了工作负载的类型。 OLTP类型的工作负载,特点是并发用户数多,SQL语句一次处理的数据量少。 报表查询类型的工作负载,特点是并发用户数少,通常是数据密集型查询处理大量数据。 数据加载与处理类型的工作负载,特点是并发用户数少,DML处理大量数据。 接下来讨论了混合工作负载的调整策略。系统上资源是有限的。内存资源的竞争一定要避免,因为只要内存不够啦,出现争抢内存的情况,结果肯定都是很糟糕。处理网络和存储相关的操作,也是使用CPU。所以限制了CPU资源的使用,也会限制网络和存储资源的使用。所以资源管理,管理的资源,最重要的是CPU资源。 对于OLTP类型的工作负载来说,想要性能好,系统上CPU使用率不要超过60-70%这个区间 对于混合工作负载,资源管理的目标和CPU策略都是对立的。OLTP的目标是快速的响应时间,CPU策略是最小化,就是系统上要有空闲CPU。报表查询和数据加载与处理类型的工作负载,因为需要处理大量数据,吞吐量是很重要的目标,CPU策略是最大化,就是尽量用到更多的CPU资源,才能性能好 管理混合工作负载,有很多方法。 可以不同的负载跑在不同的数据库上,也可以是不同的负载跑在同一个数据库上。 如果是不同的负载跑在不同的数据库上,那么一个办法就是为每个工作负载分配虚拟机。每个工作负载不能使用超过分配的CPU 另一个办法是,让所有工作负载跑在同一个操作系统上,这时候为数据库启用资源管理计划,用instance caging来控制单个数据库使用的CPU,通过CPU_COUNT参数定义每个数据库能最多能使用多少CPU资源 还有一个办法是,使用多租户,让每个工作负载跑在一个独立的PDB上,然后在CDB上启用资源管理计划来控制各个PDB的CPU使用 如果是不同的工作负载跑在同一个数据库上,那么一个办法是,让每个工作负载使用一个不同的RAC service,然后将RAC service映射到不同的RAC节点。 如果是不同的工作负载跑在一个数据库实例上,那么可以使用DBRM,将不同的工作负载映射到不同的consumer gro...

Database Connection Pool

RWP团队谈性能优化之大开眼界篇( 一)连接池策略 开始的时候让大家思考 到数据库服务器的连接数,您觉得应该跟什么有关? 1. 系统需要支持的最大并发用户数 2. 硬件,数据库服务器上的CPU数量 3. 硬件,数据库服务器上的内存大小 4. 只要设的足够大,应用不报错就行 然后进行了demo。demo中用到一台数据库服务器,两台应用服务器。数据库服务器是Exadata X8-2的一个计算节点(48 CPU Core),应用服务器是Exadata X8-2的两个计算节点,都坐落在美国的一个数据中心里。 开始demo,连接池的最小值是288,最大值是6000。28800个Java Thread 每10000ms向数据库里发送一个request,系统非常闲,CPU使用率不到10%。 将Think Time由10000改为5000,即每个Java Thread每隔5000ms向数据库里发送一个Request,工作负载翻倍。 工作负载翻倍之后,响应时间不变,TPS翻倍,系统的扩展性完美。 进一步减少Think Time,将Think Time由5000改为2500。到数据库的连接从200多激增到了将近5000,连接风暴发生了。过程中响应时间突然变慢好几百倍,TPS没有马上翻倍。过了一会儿,响应时间似乎又稳定下来了,TPS也基本翻倍,基本线性增长了。 连接风暴发生的根本原因,是连接池配置问题。连接池最大值是6000,最小值是288,当连接不够用的时候,连接池就会增长,在demo里面,是不但增长而且急剧的增长了。 Demo里面发生连接风暴的时候,数据库服务上的CPU使用率都不到20%。就是说,即使系统很闲的时候,动态连接池策略也会有连接风暴的风险。动态连接池,是指连接池的最大值不等于最小值。当最大值与最小值相差很大,比如相差几千的时候,连接风暴的风险尤其大。 将Think Time由2500改为1200的时候,再一次经历了连接风暴,到数据库的连接从将近5000增加到了6000。 Think Time=300的时候,响应时间时间非常不稳定,通常在几百毫秒,TPS也非常不稳定,相比Think Time=600/1200的时候,TPS根本就没有升高,反而整体还低了一些,数据库里面的活跃会话数基本在5000以上,数据库里有大量的等待事件,主要是latch: cache buffers c...

How to use SQL Monitor

RWP团队谈性能优化之大开眼界篇(五)SQL Monitor报告实例分析 首先介绍了用于数据库诊断的各种工具汇总,强调SQL Monitor报告是用于SQL级别性能诊断和分析的最佳工具,它显示一条SQL语句的某次执行的详细信息。对于长时间运行的SQL,可以进行精准的分析以确定时间都花在哪里 SQL Monitor报告在Oracle 11g开始引入,它总是可用,是默认启用的,用于监视SQL的单次执行,也包括尚未完成的SQL语句。 SQL语句要被监视需要满足下面的三种情形之一: 1. 所有的并行执行语句 2. 超过5秒的串行执行语句 3. 带有 /*+ monitor */ 提示的语句 SQL Monitor报告有多种格式,推荐使用Active(HTML)的格式,在没有浏览器可以的情况下可以使用TEXT格式的直接在终端查看。有多种方法生成或者直接查看SQL Monitor报告:  OEM的SQL监视页面  EM Express  PerfHub  命令行方式直接生成  SQL Developer 接下来介绍了如何解读SQL Monitor报告。RWP推荐采用自顶向下的方式来查看:  时间都花在哪里?  哪一个行源(row sources)?  估计的和实际的行数一致吗?  执行数  并行服务器执行数  Nested loop 迭代次数  智能分区操作  并行执行:并行进程倾斜? 在SQL Monitor的General部分可以查看SQL的一般信息:是否使用了并行;SQL消耗的数据库时间,数据库时间中CPU和各种等待的占比;SQL消耗的IO信息等等。 Plan Statistics页展示执行计划和过程信息。在这个页面,Activity % 显示了时间花在哪里;可以获得每个操作的估计行数,执行过程中实际返回的行数,从而确定估计值是否有偏差;在此首先关注表或者索引扫描的估计行数,不好的估计值往往导致不好的执行计划。 Plan页可以查看执行计划的更多信息,可以查看每个步骤的过滤条件以及分区裁剪信息。 Activity页以图形的方式显示活动会话和等待事件——类似于单条SQL的顶级活动。在这个页面可以看到整个SQL的执行过程,另外这个页面提供了多个维度来查看SQL的DB时间的分布。 Parallel页只有在并行执行的SQL才会出现,显示了各个并行进程的信息...

How to read Oracle AWR Report

RWP团队谈性能优化之大开眼界篇(四)AWR报告实例分析 本讲首先介绍了用于数据库诊断的各种工具汇总,强调AWR报告是用于系统级别性能诊断和分析的工具。AWR报告是系统级别性能问题的首选工具,提供系统设置和体系结构的整体概况。分析时采取自顶向下的视角:先专注于主要部分以识别主要问题,然后使用其他部分以获取详细信息, 然后简要介绍了AWR包括的各种报告,比如:单实例和多实例的报告,单实例和多实例的对比报告,CDB/PDB级别有不同的报告,以及单个SQL的AWR报告等。在不同的场景下应该选择合适的报告来分析 接下来给出了RWP 推荐的分析AWR报告的顺序: 1.报告开头的系统基础信息 2.ADDM的主要发现 3.负载概览(Load Profile) 4.init.ora参数 5.顶级前台等待事件 6.顶级SQL 7.根据上述步骤里发现的可疑问题,再通过其他部分获取特定的详细信息以进行分析 针对这个顺序中的每个步骤,分别讲解了需要查看和分析的重点 1. 对于报告开头的系统基础信息,需要关注数据库的版本,是否是RAC和/或CDB;同时了解基于core的CPU资源信息,如何将会话数和CPU core结合来检查数据库的连接策略;最后通过DB Time来来获得活动会话的信息 2.对于ADDM的主要发现部分,通过数据库给出的主要发现可以大致定位系统存在问题的可能方面,从而为后续的分析指明方向 3.在负载概览(Load Profile)部分,通过DB时间和CPU时间可以对数据库是消耗较多CPU还是在各种等待上有个直观了解。而解析(特别是硬解析)和用户登陆信息可以对应用的实现有个初步了解,并提前掌握系统可能存在的问题 4.在init.ora参数部分,需要重点关注下划线参数和事件的设置,这些参数应该仅在Oracle售后建议时临时设置;所有参数应该尽量使用默认值,在不同节点上的配置也应该保持一致。设置过多的参数可能会对系统带来不可预知的表现。Oracle的所有测试都是基于默认值的 需要重点关注的init.ora参数包括: •db_block_size •db_file_multiblock_read_count •cursor_sharing •open_cursors •optimizer_* •parallel_* •processes •sessions 5.在顶级前台等待事件部分,...

Oracle Golden Gate Workshop

##### Meeting Outline ######## 数据同步的需求和挑战 Golden Gate 实现数据实时同步 零停机数据库迁移如云 Oracle -> ADW, Mysql ->Oracle  异构,实时,双活,保证数据一致性 为Kafka,大数据环境供数 分入侵式的数据抽取 Oracle,mysql,msSQL--- DBMS,Cloud,Big Data,NoSQL,Streams(Kafak,Spark) 单向查询分流 合并实时BI Oracle Golden Gate Marketplace,  Oracle GG for Big Data,  Oracle GG for Kafka 专属XStream APIs 达到4Gb/s GG 19c 新增并行投递性能提升5倍以上。  延迟小于100ms的网络与本地捕获类似 Year 2017 对Oracle和非Oracle数据库远程抽取和投递取能力 Golden Gate 支持跨操作系统的远程抽取,减少了Golden Gate日常维护量 GG Marketplace 开通三步部署,免费试用 搜索OCI Marketplace 在OCI上部署Golden Gate 访问Golden Gate GG微服务版本 Case 1:云端网络同步 单向传送数据,对源端无干扰,只开放需要的网络端口 实时数据传送 Case 2:EBay GG实时投递 Case 3: QuickBooks 实现数据库高可用,和流数据分发 Case 4: GG零停机的迁移 启动extrace 传送到目标端同步 数据pump做数据初始化 veridata 数据验证 --反向数据传送以保证迁移后数据同步到legacy系统 select dbms_flashback.get_system_change_number from dual; DBoptions enable_instantiation_filtering         OGG 12.2, DB version 11gR2 数据库GG迁移中常见的错误 1. 目标端没有及时禁用触发器,级联删除和数据库job 2. 导出数据时数据库有长事务没有提交,事务开始时间在启用捕获之前 3. R...

Oracle Autonomous Database Workshop

1. Autonomous Database Technical Overview ---Oracle Cloud Infrastructure OCI Region - HA Building Blocks, Availability Domain(AD) Fast and Scalable Bare Metal, VM, and GPU compute Cluster Networking Consistant Performance Storage IoT, ADB, AI/ML, Analytics, Mobile Apps, Colud Native Architectures ---ADB Overview ADB Revolutionizes data management Innovate faster with lower costs A. Data Warehouse (ADW), A. Transaction Processing (ATP) ---ADB Key Features Lower cost, reduce risk, accelerates innovation Simple, Fast, Elastic Self-driving, Self-securing, Self-repairing Gathering Satistics and Hints Capture--identify--verify--decide--monitor ---ADB Architectural Components Exadata system based on Region,  Oracle controls all patching, software version, and isolation Low minimum size/cost - 1 OCPU and 1 TB of storage Low minimum time commitment - 1 hour OCI integration: Connection Manager services, Application Servicer, Oracle ML servers               ...

Oracle Database 20c New Features

Oracle 20c Preview Release, only available on OCI 1. 20c云端上线     February 14, 2020  Version 20.2.0     May 14, 2020 Version 20.3.0 2. 20c区块链表     区块链技术使用Hash加密技术,将记录连接在一起。      Oracle 20c中作为数据库产品的一部分,无需额外安装     只允许插入操作, 区块链上的参与者都可以对链上数据进行验证     create blockchain table ssn_records     (bank varchar2(128), deposit_date date, deposit_amout number)     no drop unitl 31 days idle       --- day min = 16     no delete locked     hashing using "sha2_512" version 'v1"     partition by range(deposit_date)     (     partition p1 values less than (to_date('2020/01/01','yyyy/mm/dd')),     partition p2 values less than (to_date('2021/01/01','yyyy/mm/dd'))     ); 3. 20c In-Memory增强     基于Oracle 向量连接      inmemory_automatic_level  [HIGH, middle, low], 根据数据被访问的热度,进行对象压缩,调整     混合扫描, buff...

Oracle OCI Architect Associate Workshop

Identity and Access Management (IAM) --IAM Policies --IAM compartment --Policy Inheritance and Attachment --IAM-Tags Virtual Cloud Network(VCN) --CIDR --Intro VCN --Routing and Gateway --Peering --Security VCN --DNS Connectivity - VPN Connect & FastConnect --Conectivity to On-Premises Networks --VPN Connect --FastConnect Load Balancer --Public, Private --Primary, Standby Compute --Compute Intro --Images --Boot Volumne --Autoscalling --Instance Metadata and lifecycle OCI Storage Services       Type, Durability, Capacity, Unit Size, Use cases --Local NVMe --Block Volume --File Storage --Object Storage --Archive Storage Oracle Database on OCI --OCI Databasse services       Bring your won license, OCI paltform integration, Security, Storage, Scaling,  RAC/ADG --VM Database System --Bare Metal DB system  --Exadata DB systems       All benefits of Public Cloud, full Oracle DB with advanced options --Database Editions     ...

Oracle Log Analytics Cloud Service

#####LACS日志采集方式#####                      通过安装Cloud Agent           通过Log server/Duplicated server/syslog           手动上传, LACS客户端命令行 Customer Proxy #####技术点一览##### 解析器:从非结构化日志中获取有用信息并结构化,内容转换成Key-Value                 引导式的解析日志,正则表达式                 开箱即用的解析工具                            Oracle ebusiness, Database, Middleware                        Non-Oracle (SAP, Apache, DB2, MS-SQL, NetApp, Juniper)                       手工书写 日志源:目标/主机上目录位置                 关联目标和日志源,将日志与实体(对象)项相关联                 有利于从应用application 角度分析日志 人工上传: 命令行,交互式, UI   ...

Oracle and IoT

传统意义上的基础设施主要是公路、铁路、桥梁、隧道、机场、港口、电网、供水等设施, “新型基础设施”则包含 5G网络 、 物联网 、 特高压,城际铁路,工业联网, 数据中心等数字化设施                新基建分为三类,分别是通信网络及 高性能计算 、应用 大数据 等技术的传统基础设施、支撑科研创新的设施。 高捕获率工作负载案例: SK Telecom,纽约股票交易所。。。 NoSQL vs Oracle 优化设计,配置,性能优于NoSQL Database 主要需求: 可扩展,灵活性,实时分析。 --------------快速加载------------------ Oracle RAC, Sharding 使用Oracle bigfile 表空间。 使用autoallocate扩展管理, 注意在表上指定较大的扩展大小,防止等待事件 enq:HW 单行插入 vs 数组插入, 允许通过数据库API使用单个语句插入多行,适用于所有编程语言,降低redo生成和CPU需求,减少网络通信量,每个绘画 18000/s 禁用表级锁定,防止DDL命令 使用异步提交 Oracle Direct Path Loads + 外部表, 采用分区扩展语法防止表级锁 外部临时文件的位置,格式可能会对加载效率有很大影响。单字节分隔符。。。 数据压缩。 IoT的特点: 一次捕获,数据很少改变,包含大量重复的值        compress for direct_load operations        compress for all operations        DMLcompress for [query|archive] [high|low] Memoptimized Rowstore: 快速捕获支持         DBMS_MEMOPTIMIZE, 直接写入内存,需要application确认数据装载一致性和完整性 alter table meter_readings memeoptimize for wri...

SAS Data Quality -- Data Management Studio

A data curator's job is to understand and prepare data for use in analytics and reports. SAS has several of ferings that can aid in this ef fort. The technology components that comprise SAS data quality offerings include: • DataFlux Data Management Studio – a Windows-based desktop client application that enables you to create and manage processes for ensuring the accuracy and consistency of data during the data management life cycle. Typically, Data Management Studio is thought of as the development environment. • DataFlux Data Management Server – provides a scalable server environment for executing the processes created in Data Management Studio. Typically, Data Management Server is thought of as the production environment. • SAS Quality Knowledge Base (QKB) – a collection of files and algorithms that provide the data cleansing and data management functionality that is surfaced through the nodes in Data Management Studio processes. • Reference data source(s) – third-party address ...

The SAS Platform Applications

The Analytics Applications and other SAS tools help analysts make and manage models, forecast trends, and generate statistics and visualizations on data. --SAS Enterprise Miner --SAS Forecast Server --SAS Model manager --JMP The Reporting Applications available in the SAS platform and other SAS applications allow users to generate complex dashboards and reports on their data as well as access data and generate reports with Microsoft Office tools like Excel or Word. --SAS Add-In for Microsoft Office --SAS Visual Analytics The Programming Interfaces available in the SAS platform allow users to write and edit SAS code, which can be used to manage, analyze, and report on data. SAS code will be used in this course to generate custom transformations and can be used in the tool to customize jobs and existing transformations. --SAS Studio --SAS Enterprise Guide The Data Management Applications available in the SAS platform.  --SAS Data Integration Studio application --DataFlux Data Managem...

SAS Academy for Data Science

### Data Curation Professional    (4 courses) Learn about data curation, data management and Hadoop – everything you need to manage big data. -----Introduction to Data Curation for SAS Data Scientists -----SAS Data Management Tools and Applications -----SAS and Hadoop -----Advanced SAS Data Management Tools and Applications ### Advanced Analytics Professional   (9 courses) Expand your analytical skill set by learning analytical modeling, machine learning, experimentation, forecasting and optimization. ===Predictive Modeler Using SAS Enterprise Miner=== -----Applied Analytics Using SAS® Enterprise Miner ==Advanced Predictive Modeling Using SAS 9.4=== -----Predictive Modeling Using Logistic Regression -----Neural Network Modeling -----Data Mining Techniques: Predictive Analytics on Big Data -----Using SAS® to Put Open Source Models into Production ===Text Analytics, Time Series, Experimentation, and Optimization=== -----Text Analytics Using SAS® Text Miner -----Time Se...

Snapshot Clone & Application Container

多租户结构,共享系统资源 Testing on T5 -- 252 non-CDB vs PDB Total throughtput double 吞吐量增加一倍  内存使用减少 1/8 容器数据特点          为每个应用独立分配PDB:无需更改应用,快速供应(克隆),可(在线)插拔          常规维护操作都在CDB级进行:多个PDB作为一个整体进行管理 升级,HA,备份;必要时可以进行更细粒度操作          资源共享:后台进程(SGA/ RECO, SMON, PMON, CKPT, LGWR), spfile, redo file,           本地Undo, 从12.2.0.1起默认: Falshback Pluggable Database, Hot cloning          Resource Manager               SGA_MIN_SIZE               IORM               CPU_COUNT Create PDB from leagcy DB: exec DBMS_PDB.DESCRIBE('PDB1.xml'); create pluggable database .... start  ?/rdbms/admin/nocdb_se... Connect PDB          export TWO_TASK = PDB 利用curl调用API创建PDB,搭建数据库即服务 DBasS 压力测试软件  SwingBench 2.5.0.971 通过Database Link重定位,在线迁移PDB...

GitLab CI/CD

GitLab CI New Customer Orientation https://www.youtube.com/watch?v=Ci06e7LxP88 Getting the Runner https://docs.gitlab.com/runner/install/ CI YAML Reference https://docs.gitlab.com/ee/ci/yaml/ .gitlab-ci.yml Examples https://docs.gitlab.com/ee/ci/examples/README.html search: "GitLab CI Reference"

Oracle 19c: Distributed Database -- Sharding

分布式数据库发展历程           1987 分布式数据库应遵循的12条原则           Google 2003, 2004, 2006 年发表的GFS, MapReduce, BigTable           2012年Google公布分布式数据库系统Spanner (NewSQL) Sharing的作用           更高的扩展性和故障隔离性,数据分片避免大型单一数据库扩展;愿意修改应用,把负载路由到指定的数据库           数据主权问题 Oracle Database Sharding          跨独立数据库的水平分区数据,同一个表的不同分区可以放在不同的数据库里。          逻辑上是一个数据库,所有分片具有相同的Schema          无共享的可伸缩性和可用性架构--- Shared Nothing的架构 Sharing 好处          Linear Scalability 线性扩展  1000个分片          Extreme Available极高可用性          分布部署 Oracle Sharding的优势          ACID, ADG/OGG 。。。 Oracle Sharding架构由两部分组成          Oracle GDS (Global Data Services)v12cR1 实现自动部署和sharding管理以及拓扑复制    ...

Simple Linear Regression Sample

###Python### # Importing the libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd # Importing the dataset dataset = pd.read_csv('Salary_Data.csv') X = dataset.iloc[:, :-1].values y = dataset.iloc[:, 1].values # Encoding categorical data # Encoding the Independat Variable ## Method 1 from sklearn.compose import ColumnTransformer from sklearn.preprocessing import OneHotEncoder ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [3])], remainder='passthrough') X = np.array(ct.fit_transform(X)) ## Method 2 """ from sklearn.preprocessing import LabelEncoder, OneHotEncoder labelencoder_X = LabelEncoder() x[:, 3] = labelencoder_X.fit_transform(x[:, 3]) onehotencoder = OneHotEncoder(categorical_features = [3]) X = onehotencoder.fit_transform(X).toarray() """ # Splitting the dataset into the Training set and Test set from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_tes...

Build a Data Model

5 methods of building models: 1. All-in 2. Backward Elimination 3. Forward Selection 4. Bidirectional Elimination 5. Score comparison P Value What is a p-value https://www.mathbootcamps.com/what-is-a-p-value/ How to Calculate P Value https://www.wikihow.com/Calculate-P-Value

Classification of Data Visualization

可视化分类:ft.com/vocabulary 离差/Deviation 强调相对于一个固定参考值的变化(正/负值)。通常参考值为零,但也可能是一个目标数值或是长期平均值。也能用来展 现态度倾向(正向/中立/负面)。 分向条形图/Diverging bar 一种简单、标准化的条形图,能同时处理正、负数值。 分向堆叠条形图/Diverging stacked bar 最适合用来展现牵涉到态度(正向/中立/负面)的调查结果。 成对条形图/Spine 将单一数值分成两组对比的组成(例如男性/女性)。 盈余/赤字填充线图/Surplus/deficit filled line 阴影部分能展示出一种平衡关系,或者是相对于某个基准线,或者是两组数据之间。 相关性/Correlation 展示两个或多个变量之间的关系。要注意的是,除非你特别说明,大部分人会认为你所展示的两个变量之间存在因果关系 (例如一个变量导致另一个变量变化) 排序/Ranking 当某个项目在排序列表中的位置比其绝对数值或相对数值的大小更重要时,使用这种图表。不要害怕强调出需要关注的重点。 分布/Distribution 显示数据集中的数值及其出现的频率。分布的形状(或偏离程度)是突出数据的不一致或不平均的方便记忆的方式。 规模/Magnitude 用来比较数据的规模。有可能是比较相对规模(显示出哪一个比较大),有可能是比较绝对规模(需要显示出精确的差异)。通常用来比较数量(例如桶、人、美元),而不是经过计算后的比率或百分比。 部分和整体的关系/Part-to-whole 能显示出一个整体如何被拆解成不同组成。如果读者只是想了解个别组成部分的大小,不妨改用规模类的图表。 地理空间/Spatial 当数据中的精确位置和地理分布规律比其他信息对读者来说更重要时,可使用这类图表。 流向/Flow  向读者展示两个或两个以上的状态、情境之间流向 的流动量或流动强度。这里的状态、情境可能是逻辑关系或地理位置。 时间变化/Change Over Time 强调趋势的变化。有可能是短期(一日内)波动或长到数十年或数百年的改变。为了向读者提供适当的背景信息,选择正确 的时间段很重要

Oracle 19c: Security Enhancement

数据是我们最宝贵的资源,其中包含大量敏感信息 网络安全等级保护条例(等保)2.0保护对象大幅度增加,涉及云,大数据等 Oracle DB Security Assessment Tool Audit Data/Audit Vault 从12c开始,特权分析功能可以捕获用户的行为使用的特权,以回收不必要的特权 Privilege Analysis 通过Audit Vault可进行数据审计,而通过data masking进行数据加密保护 Data Masking Transparent Data Encryption/Key Vault Database Vault Database Firewall Advanced Security Security Backup/ZDLRA ADG/Golden Gate Label Security AVDF/Database Valut Data Masking/Data Redaction IDM 访问控制 ---------------------Oracle 19c Security------------------------------ Oracle 数据字典加密 AES192,AES256加密离线表空间 更新了FIPS加密库 Database Vault 操作控制防止云DBA访问PDB数据 审计 top-level用户行为 Schema-Only Accounts 跨主备库单一登录失败计数 create user auxapp no authentication; alter user add/remove privillege Oracle Database Vault, 通过安全域的设置分离访问权限 Database Vault Operations Control。 云运营人员不应看到PDB中的数据。 通过PDB lockdown profile 的补充保护,可防止PDB用户影响其它PDB和数据库 TDE 能够加密包括数据字典内的所有Oracle 表空间 RMAN数据迁移时自动加密 每个PDB可选自己的密钥库 Keystore TDE主要针对存储数据的加密,而Data Redaction主要针对展现数据的加密 TDE表空间加密可以无缝连接其它技术:Exadata,Data Stream, smart sc...

Exadata Flashcache, In-Memory

Database 的功能智能延伸到了存储层 RDMA 提供低延迟和低CPU消耗 Flash的变革2009- 2019 Flash SCSI(v2)--》 Flash NvMe (v5)。到X5的时候开始采用NVMe技术,充分的使用了PCIe接口的性能,而不是类似之前其实还是通过SAS。 三星NVMe接口,2014年开始在Exadata装备NVMe Flash。X6 第二代NVMe, X7第三代NVMe 2019年前后数据库瓶颈: 一个NVMe Flash 可以提供5.8G/s的带宽,其它的Flash设备吞吐能力被浪费。 Exadata X8 可以支持560G/s的flash带宽(~接近800G/s数据库DRAM内存带宽)必须把计算下移到存储才能发挥Flash I/O的能力。由于Exadata使用了Query offload,才有可能充分发挥flash cache的性能 Exadata的Falsh Cache的命中率可以高达90%,这是由于Exadata更了cache的内容,而不是仅按照数据块来cache。同时我们使用Flash会有与数据库结合的技术,例如通过Smart log来解决Flash写风暴的问题 Exadata Smart Flash Log 并行使用flash缓存和磁盘控制器写入。 Exadata In Memory columnar Flash Cache  25.6TB * 3 = 76.8TB 

Oracle 19c: Hybrid Partition Table

从Oracle Database 19c开始,Oracle数据库支持Hybrid partitioned tables,也就是混合分区表,进一步扩展了Oracle分区技术。这里的混合指的是数据的分布,一些分区可以位于数据库中,另一些可以是位于数据库外部的文件(比如操作系统文件或Hadoop Distributed File System (HDFS) 文件)。这个特性的出现,其实一点也不奇怪,因为从12.2开始就支持了外部表分区、只读分区,在19c中只是将内部分区(internal partitions)与Oracle外部分区(external partitions)特性结合起来,形成一个更通用的分区,称为混合分区表。 Oracle 三大件: DG, RAC, Partition When to partition a table: 1. table great than 2GB 2. table contains historical data, which new data is added into the newest partition How to change to partition tables: 1. export/import method 2. insert with a subquery method 3. partition exchange method 4. dbms_redefiniation Orcle Partition History: 7.3: start, through view  8i: hash partition  9i: 支持列表分区 10g: 支持IoT, 个数由64k to 1024k,全局索引的hash分区 11g: 间隔分区,多种组合分区,虚拟列分区,分区建议器 12c: 在线分区维护,部分分区索引,global索引维护,外部分区表,分区与sharding,只读分区 18c: 在线更改分区类型,在线merge分区,parallel partition wise-join 19c: 混合分区表 --Oracle 11g Interval auto creation create table intervalpart (c1 number, c3 date) partition by ran...