azure之MSSQL服务性能测试
azure给我们提供非常多的服务而这些服务可以让企业轻而易举地在上构建一个健壮的服务体系.但在使用azure的相关产品服务时还是应该对相关的服务有一些简单的性能了解才能更好的让企业购买适合自己的服务产品.MSSQL是azure提供的一个服务产品之一,它提供了多个性能等级给用户选择,但在一些性能描述上很让你有所理解;下面通过简单的测试看一下azure上的MMSQL针对企业的几个等级P1,P2和P3的并发处理能力.
测试用例
测试针对Northwind的数据库进行压力测试,具体测试用例如下:
- 随机获取订单和相关明细
int i = System.Threading.Interlocked.Increment(ref mIndex)%mOrderids.Count;
int orderid = mOrderids[i];
(Model.Orders.orderID == orderid).ListFirst<Model.Orders>(cc);
if (DB == Peanut.DB.DB2 || DB == Peanut.DB.DB3)
{
using (Peanut.DBContext.ChangeTable<Model.OrderDetails>("`Order Details`"))
{ (Model.OrderDetails.orderID == orderid).List<Model.OrderDetails>(cc);
}
}
else
{
(Model.OrderDetails.orderID == orderid).List<Model.OrderDetails>(cc);
} - 添加雇员
string id = Guid.NewGuid().ToString("N");
Model.Employees item = new Model.Employees();
item.Address = "gz"+id;
item.City = "gz";
item.Country = "cn";
item.Region = "gd";
item.Title = "程序员";
item.BirthDate = DateTime.Now.AddYears(-10);
item.HireDate = item.BirthDate.AddDays(20) ;
item.FirstName = "fan";
item.LastName = "henry";
item.Notes = id;
item.Save(cc); - 获取客户订单的TOP 10
int i = System.Threading.Interlocked.Increment(ref mIndex) % mCustomers.Count;
string customerid = mCustomers[i];
Peanut.SQL SQL;
if (DB == Peanut.DB.DB2 || DB == Peanut.DB.DB3)
{
SQL = "select * from northwind.Orders where customerid=@p1 limit 0,10";
}
else
{
SQL = "select top 10 * from Orders where customerid=@p1";
}
SQL["p1", customerid].List<Model.Orders>(cc); - 添加订单和明细(事务)
Orders order = new Orders();
order.EmployeeID = mEmployeesID[mEmployeeIndex % mEmployeesID.Count];
order.CustomerID = mCustomersID[mCustomerIndex % mCustomersID.Count];
order.ShipVia = mShippers[mShippersIndex % mShippers.Count];
order.Freight = 94.5m;
order.OrderDate = mOrderDateTime[mOrderDateTimeIndex % mOrderDateTime.Count];
order.RequiredDate = order.OrderDate.AddDays(30);
order.ShippedDate = order.OrderDate.AddDays(30);
order.ShipAddress = "gz ld";
order.ShipCity = "gz";
order.ShipCountry = "cn";
order.ShipName = "sdfsdf";
order.ShipPostalCode = "510500";
order.ShipRegion = "gd";
order.Save(cc);
int orderid = sql.GetValue<int>(cc);
int items = mDetails[mDetailsIndex % mDetails.Count];
int pindex = mProductIndex;
for (int i = 0; i < items; i++)
{
pindex++;
Products product = mProducts[pindex % mProducts.Count];
OrderDetails detail = new OrderDetails();
detail.OrderID = orderid;
detail.ProductID = product.ProductID;
detail.Quantity = 5;
detail.UnitPrice = product.UnitPrice;
detail.Discount = 0.8;
if (DB == Peanut.DB.DB2 || DB == Peanut.DB.DB3)
{
using (Peanut.DBContext.ChangeTable<Model.OrderDetails>("`Order Details`"))
{
detail.Save(cc);
}
}
else
{
detail.Save(cc);
}
}
cc.Commit();
测试结果
- P1

- P2

- P3

总结
从测试结果来看对于普通应用来说是足够的,不过针对一些相对来说并发有点高的互联网企业来说估计会有点压力。不过在规划的时候可以考虑主次业务分离把业务核心存储到MSSQL而读支撑由nosql的服务产品来支撑,毕竟azure还提供了其他存储服务选择。不过从价格上来看P3的费用还是比较高的,在国内大概是3W多一个月,这个价格其实可以在azure搭建linux+mariadb从性能上来说会得到一个更理想的效能。(接下来将会测试一下azure linux+mariadb的处理能力)
azure之MSSQL服务性能测试的更多相关文章
- Microsoft Azure 云存储服务概念
本文包括了以下几点内容: 什么是Azure云存储服务? 云存储服务分类 云存储服务的优势 什么是Azure云存储服务? Azure 云存储服务可以说是Azure 上最重要的SAAS服务了. 在Azur ...
- Microsoft Azure 负载平衡服务
Microsoft Azure 为在其中托管的虚拟机(IaaS) 和云服务(PaaS) 提供负载平衡服务.负载平衡支持应用程序伸缩,并且提供应用程序故障恢复以及其他优势. 可以通过以下方式访问负 ...
- 为 Azure IoT Edge 设备部署 Azure Stream Analytics 服务
在前面的两篇文章<Azure IoT Edge on Windows 10 IoT Core>和<Azure IoT Edge on Raspberry Pi 3 with Rasp ...
- Power BI 与 Azure Analysis Services 的数据关联:1、建立 Azure Analysis Services服务
Power BI 与 Azure Analysis Services 的数据关联:1.建立 Azure Analysis Services服务
- 详述MSSQL服务在渗透测试中的利用(上篇)
前言: 致力于复现最实用的漏洞利用过程. 本文将带领大家学习以下内容: 学习使用`xp_cmdshell`扩展存储过程 学习调用`wscript.shell` 学习MSSQL写文件 学习沙盘模式提权 ...
- Azure 实例元数据服务
Azure 实例元数据服务提供有关可用于管理和配置虚拟机的正在运行的虚拟机实例的信息. 这包括 SKU.网络配置和即将发生的维护事件等信息. 若要详细了解可用信息类型,请参阅元数据类别. Azure ...
- DevOps架构下如何进行微服务性能测试?
一. 微服务架构下的性能测试挑战 微服务与DevOps 微服务是实现DevOps的重要架构 微服务3S原则 DevOps核心点 微服务架构下的业务特点 亿级用户的平台 单服务业务随时扩容 服务之间存在 ...
- Azure 订阅和服务限制、配额和约束
最后更新时间:2016年10月24日 概述 本文档指定一些最常见的 Azure 限制.请注意,本文档目前未涵盖所有 Azure 服务.一段时间后,将展开并更新这些限制以包含多个平台. NOTE: 如果 ...
- “云中论道”之——使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(上)
“云中论道”技术课堂第一课开讲啦!微软各路技术咖们齐聚一堂,为大家带来干货不断!作为“云中论道“课堂的开课之作,我们首先邀请到了微软Azure专家级的架构师:槐长清,他为我们带来了关于“使用开源技术和 ...
随机推荐
- sql条件中比较性能优化
第一个比第二个性能高. 查询语句意义: 如果codelist中tablecode配置为0时, t.Table_Code = 'SV_RETURN_BILL'不生效. 如果codelist中tablec ...
- Android IOS WebRTC 音视频开发总结(六八)-- Google: What's next for WebRTC
本文主要从用户,公司和技术角度分析美女视频直播这个行业,文章最早发表在我们的微信公众号上,支持原创,详见这里, 欢迎关注微信公众号blackerteam,更多详见www.rtc.help Justio ...
- HTTP的GET/POST细节
HTTP的GET/POST方式有何区别?这是一个老生常谈的问题,但老生常谈的问题往往有一些让人误解的结论.本文将带您浅尝HTTP协议,在了 解HTTP协议的同时将会展示许多被人们忽视的内容.在掌握了H ...
- centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复
centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复 有时候我们会碰到这样的业务场景: 1.将大的数据库恢复到本地进行业务测试 ...
- CentOS 问题集锦
在CentOS 6更新后,不可避免的会在启动选项中产生多个内核选项,一个内核文件大概占100兆左右(一般100M以下),可以使用以下命令进行删除多余的内核. 1.首先列出系统中正在使用的内核: # u ...
- Jenkins+Maven+Sonar系统持续集成环境部署以及配置
一.Jenkins介绍以及安装 什么是持续集成? 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Ag ...
- node.js入门及express.js框架
node.js介绍 javascript原本只是用来处理前端,Node使得javascript编写服务端程序成为可能.于是前端开发者也可以借此轻松进入后端开发领域.Node是基于Google的V8引擎 ...
- MFC 实现字符串的移动
在视类添加一个WM_KeyDown,然后实现函数写上 switch(nChar) {.. CRect rc; GetClientRect(&rc); int nWidth = rc.Wid ...
- machine learning----->有监督学习和无监督学习的区别
1.有监督学习和无监督学习的区别: 1.1概述: 有监督学习是知道变量值(数据集)和结果(已知结果/函数值),但是不知道函数样式(函数表达式)的情况下通过machine learning(ML)获得正 ...
- android及IOS的测试中容易疏漏或者测漏的点——持续更新
1.控件的生命周期——控件消隐之后,会不会依然可点,导致出现进一步的响应?这个之前没想过,之后需要加入到测试点中 2.在登录界面同时出现弹窗: 如:特殊情况下,同时出现弹窗,又刚好退出登录,因此登录界 ...