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服务性能测试的更多相关文章

  1. Microsoft Azure 云存储服务概念

    本文包括了以下几点内容: 什么是Azure云存储服务? 云存储服务分类 云存储服务的优势 什么是Azure云存储服务? Azure 云存储服务可以说是Azure 上最重要的SAAS服务了. 在Azur ...

  2. Microsoft Azure 负载平衡服务

     Microsoft Azure 为在其中托管的虚拟机(IaaS) 和云服务(PaaS) 提供负载平衡服务.负载平衡支持应用程序伸缩,并且提供应用程序故障恢复以及其他优势. 可以通过以下方式访问负 ...

  3. 为 Azure IoT Edge 设备部署 Azure Stream Analytics 服务

    在前面的两篇文章<Azure IoT Edge on Windows 10 IoT Core>和<Azure IoT Edge on Raspberry Pi 3 with Rasp ...

  4. Power BI 与 Azure Analysis Services 的数据关联:1、建立 Azure Analysis Services服务

    Power BI 与 Azure  Analysis Services 的数据关联:1.建立  Azure  Analysis Services服务

  5. 详述MSSQL服务在渗透测试中的利用(上篇)

    前言: 致力于复现最实用的漏洞利用过程. 本文将带领大家学习以下内容: 学习使用`xp_cmdshell`扩展存储过程 学习调用`wscript.shell` 学习MSSQL写文件 学习沙盘模式提权 ...

  6. Azure 实例元数据服务

    Azure 实例元数据服务提供有关可用于管理和配置虚拟机的正在运行的虚拟机实例的信息. 这包括 SKU.网络配置和即将发生的维护事件等信息. 若要详细了解可用信息类型,请参阅元数据类别. Azure ...

  7. DevOps架构下如何进行微服务性能测试?

    一. 微服务架构下的性能测试挑战 微服务与DevOps 微服务是实现DevOps的重要架构 微服务3S原则 DevOps核心点 微服务架构下的业务特点 亿级用户的平台 单服务业务随时扩容 服务之间存在 ...

  8. Azure 订阅和服务限制、配额和约束

    最后更新时间:2016年10月24日 概述 本文档指定一些最常见的 Azure 限制.请注意,本文档目前未涵盖所有 Azure 服务.一段时间后,将展开并更新这些限制以包含多个平台. NOTE: 如果 ...

  9. “云中论道”之——使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(上)

    “云中论道”技术课堂第一课开讲啦!微软各路技术咖们齐聚一堂,为大家带来干货不断!作为“云中论道“课堂的开课之作,我们首先邀请到了微软Azure专家级的架构师:槐长清,他为我们带来了关于“使用开源技术和 ...

随机推荐

  1. 0601 Spring2.0 发布会及产品发展方向

    ProductBacklog:继续向下细化; 1.界面美化,统一界面风格,以简洁美观为主: 2.丰富版面的内容,吸引用户: 3.尝试增加新的版面: Sprint 计划会议:确定此次冲刺要完成的目标 1 ...

  2. NRF51822之修改设备名(掉电不保存)

    主要代码 /**@brief Function for handling the Application's BLE Stack events. * * @param[in] p_ble_evt Bl ...

  3. CString转换成char*

    CString转换成char* :charSource = (char*)strSource.GetBuffer(0); 法2:charSource = (char*)strSource.GetBuf ...

  4. DHCP服务器的开始方式

    方法一:采用DHCP服务器接口开启的方式 [Huawei]dhcp enable [Huawei]int g0/0/0[Huawei-GigabitEthernet0/0/0]ip add 192.1 ...

  5. c++学习笔记——构造函数

    构造函数定义:每个类都分别定义了它的对象被初始化的方式,类通过一个或几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数. 需要注意的几点: 1:构造函数不能被声明为const的,当我们创 ...

  6. 一个PHP日历程序

    <?php  //<-------处理通过GET方法提交的变量;开始-------->  if($HTTP_GET_VARS[year]=="")  {      ...

  7. Android-ConvenientBanner轻松实现广告头效果

    Android-ConvenientBanner通用的广告栏控件,让你轻松实现广告头效果.支持无限循环, 可以设置自动翻页和时间(而且非常智能,手指触碰则暂停翻页,离开自动开始翻页. 你也可以设置在界 ...

  8. 企业好助手U-Mail邮件服务器软件

    对于一家企业,最核心的是什么?有人说人才,有人说技术,也有人说是数据(信息),依小编来 看,这些答案都没错,人才会流动,技术在不断更新,唯有数据(信息),日积月累,将沉淀为公司历史的一部分,作为决策的 ...

  9. delete drop truncate 区别

    truncate 删除内容,并释放空间,并不删除表结构,删除标识列,标识列重新从1开始delete 删除内容,不释放空间,不删除表结构,不删除标识列,标识列继续增加drop 直接删除表

  10. Get the Uniqueid of Action Originate in the AMI

    [asterisk-users] Get the Uniqueid of Action Originate in the AMI Adolphe Cher-Aime acheraime at gmai ...