数据库评估
㈠ 衡量数据库性能的重要指标
具体来说,本文包括以下内容:
事务
查询性能
用户和查询冲突
容量
配置
Nosql 数据库
- 图1-基于基线评估当前事务响应时间
事务
事务可以观察真实用户的行为:能够在应用交互时捕获实时性能。众所周知,测量事务的性能包括获取整个事务的响应时间和组成事务的各个部分的响应时间。通常我们可以用这些响应时间与满足事务需求的基线对比,来确定当前事务是否处于正常状态。
如果你只想衡量应用的某个方面,那么可以评估事务的行为。所以,尽管容器指标能够提供更丰富的信息,并且帮助你决定何时对当前环境进行自动测量,但你的事务就足以确定应用性能。无需向应用程序服务器获取 CPU 的使用情况,你更应该关心用户是否完成了事务,以及该事务是否得到了优化。
补充一个小知识点,事务是由入口点决定的,通过该入口点可以启动事务与应用进行交互。
一旦定义了事务,会在整个应用生态系统中对其性能进行测量,并将每个事务与基线进行比对。例如,我们可能会决定当事务的响应时间与基线相比,一旦慢于平均响应时间的两个标准差是否就应该判定为异常,如图1所示。
用于评估事务的基线与正在进行的事务活动在时间上是一致的,但事务会由每个事务执行来完善。例如,当你选定一个基线,在当前事务结束之后,将事务与平均响应时间按每天的小时数和每周的天数进行对比,所有在那段时间内执行的事务都将会被纳入下周的基线中。通过这种机制,应用程序可以随时间而变化,而无需每次都重建原始基线;你可以将其看作是一个随时间移动的窗口。
总之,事务最能反映用户体验的测量方法,所以也是衡量性能状况最重要的指标。
查询性能
最容易检测到查询性能是否正常的指标就是查询本身。由查询引起的问题可能会导致时间太长而无法识别所需数据或返回数据。所以不妨在查询中排查以下问题。
1. 选择过多冗余数据
编写查询语句来返回适当的数据是远远不够的,很可能你的查询语句会返回太多列,从而导致选择行和检索数据变得异常缓慢。所以,最好是列出所需的列,而不是直接用 SELECT*。当需要在特定字段中查询时,该计划可能会确定一个覆盖索引从而加快结果返回。覆盖索引通常会包含查询中使用的所有字段。这意味着数据库可以仅从索引中产生结果,而不需要通过底层表来构建。
另外,列出结果中所需的列不仅可以减少传输的数据,还能进一步提高性能。
2. 表之间的低效联接
联接会导致数据库将多组数据带到内存中进行比较,这会产生多个数据库读取和大量 CPU。根据表的索引,联接还可能需要扫描两个表的所有行。如果写不好两个大型表之间的联接,就需要对每个表进行完整扫描,这样的计算量将会非常大。其他会拖慢联接的因素包括联接列之间存在不同的数据类型、需要转换或加入包含 LIKE 的条件,这样就会阻止使用索引。另外,还需注意避免使用全外联接;在恰当的时候使用内部联接只返回所需数据。
3. 索引过多或过少
如果查询优化没有可用的索引时,数据库会重新扫描表来产生查询结果,这个过程会生成大量的磁盘输入/输出(I/O)。适当的索引可以减少排序结果的需要。虽然非唯一值的索引在生成结果时,不能像唯一索引那样方便。如果键越大,索引也会变大,并通过它们创建更多的磁盘 I/O。大多数索引是为了提高数据检索的性能,但也需要明白索引本身也会影响数据的插入和更新,因为所有相关联的指标都必须更新。
4. 太多的SQL导致争用解析资源
任何 SQL 查询在执行之前都必须被解析,在生成执行计划之前需要对语法和权限进行检查。由于解析非常耗时,数据库会保存已解析的 SQL 来重复利用,从而减少解析的耗时。因为 WHERE 语句不同,所以使用文本值的查询语句不能被共享。这将导致每个查询都会被解析并添加到共享池中,由于池的空间有限,一些已保存的查询会被舍弃。当这些查询再次出现时,则需要重新解析。
用户和查询冲突
数据库支持多用户,但多用户活动也可能造成冲突。
1. 由慢查询导致的页/行锁定
为了确保查询产生精确的结果,数据库必须锁定表以防止在运行读取查询时再发生其他的插入和更新行为。如果报告或查询相当缓慢,需要修改值的用户可能需要等待至更新完成。锁提示能帮助数据库使用最小破坏性的锁。从事务数据库中分离报表也是一种可靠的解决方法。
2. 事务锁和死锁
当两个事务被阻塞时会出现死锁,因为每一个都需要使用被另一个占用的资源。当出现一个普通锁时,事务会被阻塞直到资源被释放。但却没有解决死锁的方案。数据库会监控死锁并选择终止其中一个事务,释放资源并允许该事务继续进行,而另一个事务则回滚。
3. 批处理操作造成资源争夺
批处理过程通常会执行批量操作,如大量的数据加载或生成复杂的分析报告。这些操作是资源密集型的,但可能影响在线用户的访问应用的性能。针对此问题最好的解决办法是确保批处理在系统使用率较低时运行,比如晚上,或用单独的数据库进行事务处理和分析报告。
容量
并不是所有的数据库性能问题都是数据库问题。有些问题也是硬件不合适造成的。
1. CPU 不足或 CPU 速度太慢
更多 CPU 可以分担服务器负载,进一步提高性能。数据库的性能不仅是数据库的原因,还受到服务器上运行其他进程的影响。因此,对数据库负载及使用进行审查也是必不可少的。由于 CPU 的利用率时时在变,在低使用率、平均使用率和峰值使用率的时间段分别检查该指标可以更好地评估增加额外的 CPU 资源是否有益。
2. IOPS 不足的慢磁盘
磁盘性能通常以每秒输入/输出操作(IOPS)来计。结合 I/O 大小,该指标可以衡量每秒的磁盘吞吐量是多少兆。同时,吞吐量也受磁盘的延迟影响,比如需要多久才能完成请求,这些指标主要是针对磁盘存储技术而言。传统的硬盘驱动器(HDD)有一个旋转磁盘,通常比固态硬盘(SSD)或闪存更慢。直到近期,SSD 虽然仍比 HDD 贵,但成本已经降了下来,所以在市场上也更具竞争力。
3. 全部或错误配置的磁盘
众所周知,数据库会被大量磁盘访问,所以不正确配置的磁盘可能带来严重的性能缺陷。磁盘应该适当分区,将系统数据目录和用户数据日志分开。高度活跃的表应该区分以避免争用,通过在不同磁盘上存放数据库和索引增加并行放置,但不要将操作系统和数据库交换空间放置在同一磁盘上。
4. 内存不足
有限或不恰当的物理内存分配会影响数据库性能。通常我们认为可用的内存更多,性能就越好。监控分页和交换,在多个非繁忙磁盘中建立多页面空间,进一步确保分页空间分配足够满足数据库要求;每个数据库供应商也可以在这个问题上提供指导。
5. 网速慢
网络速度会影响到如何快速检索数据并返回给终端用户或调用过程。使用宽带连接到远程数据库。在某些情况下,选择 TCP/IP 协议而不是命名管道可显着提高数据库性能。
配置
每个数据库都需设置大量的配置项。通常情况下,默认值可能不足以满足数据库所需的性能。所以,检查所有的参数设置,包括以下问题。
1. 缓冲区缓存太小
通过将数据存储在内核内存,缓冲区缓存可以进一步提高性能同时减少磁盘 I/O。当缓存太小时,缓存中的数据会更频繁地刷新。如果它再次被请求,就必须从磁盘重读。除了磁盘读取缓慢之外,还给 I/O 设备增添了负担从而成为瓶颈。除了给缓冲区缓存分配足够的空间,调优 SQL 查询可以帮助其更有效地利用缓冲区缓存。
2. 没有查询缓存
查询缓存会存储数据库查询和结果集。当执行相同的查询时,数据会在缓存中被迅速检索,而不需要再次执行查询。数据会更新失效结果,所以查询缓存是唯一有效的静态数据。但在某些情况下,查询缓存却可能成为性能瓶颈。比如当锁定为更新时,巨大的缓存可能导致争用冲突。
3. 磁盘上临时表创建导致的 I/O 争用
在执行特定的查询操作时,数据库需要创建临时表,如执行一个 GROUP BY 子句。如果可能,在内存中创建临时表。但是,在某些情况下,在内存中创建临时表并不可行,比如当数据包含 BLOB 或 TEXT 对象时。在这些情况下,会在磁盘上创建临时表。大量的磁盘 I / O 都需要创建临时表、填充记录、从表中选择所需数据并在查询完成后舍弃。为了避免影响性能,临时数据库应该从主数据库中分离出来。重写查询还可以通过创建派生表来减少对临时表的需求。使用派生表直接从另一个 SELECT 语句的结果中选择,允许将数据加到内存中而不是当前磁盘上。
NoSQL 数据库
NoSQL 的优势在于它处理大数据的能力非常迅速。但是在实际使用中,也应该综合参考 NoSQL 的缺点,从而决定是否适合你的用例场景。这就是为什么NoSQL通常被理解为 “不仅仅是 SQL”,说明了 NoSQL 并不总是正确的解决方案,也没必要完全取代 SQL,以下分别列举出五大主要原因。
1. 挑剔事务
难以保持 NoSQL 条目的一致性。当访问结构化数据时,它并不能完全确保同一时间对不同表的更改都生效。如果某个过程发生崩溃,表可能会不一致。一致事务的典型代表是复式记账法。相应的信贷必须平衡每个借方,反之亦然。如果双方数据不一致则不能输入。NoSQL 则可能无法保证“收支平衡”。
2. 复杂数据库
NoSQL 的支持者往往以高效代码、简单性和 NoSQL 的速度为傲。当数据库任务很简单时,所有这些因素都是优势。但当数据库变得复杂,NoSQL 会开始分解。此时,SQL 则比 NoSQL 更好地处理复杂需求,因为 SQL 已经成熟,有符合行业标准的接口。而每个 NoSQL 设置都有一个唯一的接口。
3. 一致联接
当执行 SQL 的联接时,由于系统必须从不同的表中提取数据进行键对齐,所以有一个巨大的开销。而 NoSQL 似乎是一个空想,因为缺乏联接功能。所有的数据都在同一个表的一个地方。当检索数据时,它会同时提取所有的键值对。问题在于这会创建同一数据的多个副本。这些副本也必须更新,而这种情况下,NoSQL 没有功能来确保更新。
4. Schema设计的灵活性
由于 NoSQL 不需要 schema,所以在某些情况下也是独一无二的。在以前的数据库模型中,程序员必须考虑所有需要的列能够扩展,能够适应每行的数据条目。在 NoSQL 下,条目可以有多种字符串或者完全没有。这种灵活性允许程序员迅速增加数据。但是,也可能存在问题,比如当有多个团体在同一项目上工作时,或者新的开发团队接手一个项目时。开发人员能够自由地修改数据库,也可能会不断实现各种各样的密钥对。
5. 资源密集型
NoSQL 数据库通常比关系数据库更加资源密集。他们需要更多的 CPU 储备和 RAM 分配。出于这个原因,大多数共享主机公司都不提供 NoSQL。你必须注册一个 VPS 或运行自己的专用服务器。另一方面,SQL 主要是在服务器上运行。初期的工作都很顺利,但随着数据库需求的增加,硬件必须扩大。单个大型服务器比多个小型服务器昂贵得多,价格呈指数增长。所以在这种企业计算场景下,使用 NoSQL 更为划算,例如那些由谷歌和 Facebook 使用的服务器。
㈡ 现在市面上数据库安全评估产品都提供哪些评估报告
我了解到的数据库安全评估产品都会提供文档、表格、图表等多种方式的评估报告,其中报告包括:统计报告、详细报告、漏洞报告等,详细报告提供了漏洞的来源、漏洞的风险级别、漏洞类型、漏洞描述等多项内容,这样可以使用户对其数据库安全状况一目了然。安华金和数据库安全评估系统以上报告都支持还可以将报告导出便于供打印和存档。
另外安华金和的评估系统会针对评估报告进行分析,从而提出合理的修复解决方案,使数据库系统变得更加安全可靠。
㈢ 什么是数据库安全评估系统
数据库风险评估系统是针对数据库系统进行自动化安全评估的产品,它可以充分暴露数据库的安全漏洞和威胁并提供相应的建议,将企业的数据库安全工作由事后追查转变为事前预防,将数据库安全自查由低效的人工方式提高到自动检查方式,并呈现给用户。适时提出修补方法和安全实施策略,对数据库的安全状况进行持续化监控,从而帮助用户保持数据库的安全健康状态,实现“防患于未然”,对数据库安全风险进行综合评估。安华金和他家有数据库安全评估系统,你跟他们了解下。
㈣ 数据库风险评估系统针对数据资产是如何进行评估的
会根据某数据环境中敏感资产分布状况及敏感度、风险和漏洞分布状况及等级、敏感数据使用状况三个维度进行综合分析,通过合理的风险评估算法,形成资产价值评估、资产脆弱性评估,并最终形成资产综合评估分数,用于指导安全建设。我建议你了解下安华金和的数据库风险评估系统,他们的产品希望我的回答能给您带来帮助
㈤ 安华金和数据库安全评估产品特色有哪些
1、数据资产梳理,摸清“家底”
基于网络嗅探技术,自动发现网络、分支网络及广域网WAN边界中的所有数据库,梳理数据资产清单、管理数据资产基础信息、提供数据资产的敏感等级管理以及提供敏感数据资产的使用和分布情况。2、安全漏洞检测,及时发现数据库风险
安华金和基于自身在数据库漏洞挖掘方面领先的技术和经验,将数据库漏洞检测能力融入数据资产评估系统;通过对DBMS漏洞、低安全策略、缺省配置等数据库基本检测项,以及高危程序代码、权限宽泛、弱口令等数据库高级检测项的全面扫描,帮助客户及时发现数据库所存在的脆弱性问题,自主挖掘数据库漏洞。3、安全风险评估,对威胁进行等级赋值
为资产价值、脆弱性和威胁性进行评估和分析,通过三要素之间的相互影响,综合评估计算安全事件发生的可能性和带来的损失,形成最终的风险评估结果。根据风险评估结果,为用户输出风险评估报告,并提供合理、有效的修复建议。4、自动扫描敏感数据,确定数据安全策略
能够全盘梳理敏感数据在数据库中分布,对敏感数据类型进行统计分析、敏感特征数据模型管理、敏感数据量级统计、敏感数据所属业务系统及部门备案核实管理,为用户落地针对性数据库安全防护策略提供辅助依据。
㈥ 如何对一个数据库进行测评,都要做哪些工作。
2008年最热门的职业
根据专家的预测和中国人民大学大学生就业研究所的调查结果来看,今后几年具有热门就业岗位需求的产业有:
1.信息产业。包括计算机硬件和软件业、通讯器械生产业、通讯服务业、网络服务业及其他信息技术业等。
2.经贸行业。包括国内贸易业、对外贸易业、物流业、广告业,以及各类经济服务业(如经济信息、会展等)。
3.现代生活产品制造业。包括汽车、家用电器、时装服饰、家具、工艺美术与艺术收藏品等各种现代生活用品的制造业。
4.建设行业。包括居民住宅业、大型设施建筑业、房地产开发业、建筑装饰行业等。
5.基础产业。其主要发展方向包括钢铁、材料、能源、化工、城市公用事业等。
6.金融业。包括银行、证券、保险三大行业,并进一步扩大到风险投资、资本运作、金融理财等领域。
7.教育产业。包括幼儿学前教育、正规学校教育、职业资格教育与就业技能培训、在职培训、继续教育、远程教育、网上学校等。
8.社会服务业。包括各类社会生活与民事服务、社区服务业、物业管理、法律服务等。
9.医药行业。包括医疗卫生业、生物工程、制药业与保健品生产业等。
10.健康产业。包括保健行业、体育行业以及心理咨询行业等。
11.文化与生活休闲业。包括出版业、大众传播业、旅游业、餐饮业、宾馆业、娱乐业等。
12.老年产业。包括老年用品制造、老年生活服务、老年医疗、托老所、老年教育、老年休闲等诸多领域。
13.环境行业。包括环境保护行业、资源再利用行业、节能行业、新材料与新能源业等。
14.社会管理业。主要指政府机构以及相关的公共服务和社会工作。
㈦ 如何评估和测试Mysql及oracle数据库性能
1:服务器环境
操作系统:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
CPU:Intel(R) Xeon(R) CPU E5607 @ 2.27GHz 8核
内存:16G
Mysql:Ver 14.14 Distrib 5.5.21, for Linux (x86_64)
Oracle:OracleDatabase 11g Enterprise Edition Release
详细数据测试(操作通过存储过程完成)
数据插入
50并发Mysql插入性能图示(横坐标:当前数据总量,纵坐标:每秒执行次数){平均值:4841.98}
㈧ 数据安全评估系统与数据库漏洞扫描系统有什么区别
其实没什么区别,功能上都是定期检查数据库漏洞和数据库安全配置情况,数据库的安全问题,及时预防数据库的敏感信息泄漏。有些厂商会进行产品更名,比如安华金和,之前产品名称叫做数据库漏洞扫描系统,现在叫做数据安全评估系统,其实产品功能除了有迭代之外,是同一款产品,更多信息你可以去问问安华。
㈨ 为什么企业数据库要配备风险评估系统
随着网络环境的多元化发展,数据风险也在逐渐增加,在数据安全治理的框架中,“摸清数据家底”是进行数据安全治理,数据安全建设的重要前提。无论是制定具体的数据安全管理制度,还是就数据安全防护产品设置规则,都离不开对环境内数据分布和数据的使用状况,风险状况的掌握。推荐你了解一下安华金和的数据库风险评估系统,不论是从专业性还是服务范围,都是非常拔尖的。
㈩ 安华金和数据库风险评估系统的优势在哪些方面体现
仅个人观点,我觉得大致分为5个方向:1.自动定位数据资产,避免遗漏和错误。基于网络嗅探技术,自动发现网络、分支网络及广域网WAN边界中的所有数据库,梳理数据资产清单、管理数据资产基础信息、提供数据资产的敏感等级管理以及提供敏感数据资产的使用和分布情况。2.自动扫描敏感数据,构建敏感数据字典。安华金和数据库风险评估系统全盘梳理敏感数据在数据库中分布,对敏感数据类型进行统计分析、敏感特征数据模型管理、敏感数据量级统计、敏感数据所属业务系统及部门备案核实管理,帮助用户有针性地对数据库实现安全管控策略。3.暴露数据资产风险状况,提供合理修复建议。资产、脆弱性、威胁这三个要素决定着企业数据资产的风险情况,分别代表着企业资产的价值、发生安全事件的可能损失和发生安全事件的可能性。4.内置通用行业规则,辅助用户进行数据分类分级。产品内置了通用的行业分类分级规则,帮助企业实现数据分类分级管理,帮助行业理清数据资产、确定数据重要性或敏感度,协助企业有针对性地采取适当、合理的管理措施和安全防护措施,形成一套科学、规范的数据资产管理与保护机制,从而在保证数据安全的基础上促进数据开放共享。5.资产评估与资产标签管理,便于用户开展安全建设。用户可以使用标签标记资产,以便进行资产管理,例如“业务数据库”“测试数据库”等。另外,产品提供预置标签,也支持用户自定义标签。你最好与安华金和厂家联系下,跟他们聊下。