Microsoft Soft SQL Server 大数据----分区表性能测试

发表于:2018-4-11 15:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:秃驴竟敢跟贫道抢师太    来源:51testing软件测试网

  分区表
  MSSQL有一个大数据储存方案,可以提高效率那就是分区表。
  使用起来跟普通表没有区别。至于具体原理自己度娘吧。
  真正性能的提高,是依赖于硬件的加入。也是就说,当把一个表设置成分区表,每一个分区,应该储放在不同的硬盘的。
  如果分区表使用的是同一块硬盘,那么性能是不会有提高。
  组装电脑
  本身案例,将使用三块硬盘储存,将一个表设三个分区。
  好啦,吃饱就开始干活啦,先组装好电脑,为了三块硬盘,我将其它二台电脑,我把它们。。。
  好了,开始装系统,Windows为了方便,我还是装GUI的系统吧。
  成功安装windosw server 2008 r2 datacenter 版之后,再安装mssql 2008 r2
  添加模拟数据
  using System;
  using System.Text;
  using System.Collections.Generic;
  using System.Linq;
  using Dapper;
  using System.Data.SqlClient;
  using System.Data;
  using System.Threading.Tasks;
  namespace Write
  {
  class Program
  {
  static void Main(string[] args)
  {
  Console.WriteLine("开始写入模拟数据");
  //多线程写入
  for (var i = 0; i < 20; i++)
  {
  Task.Run((Action)Add);
  }
  Console.ReadKey();
  }
  public static void Add()
  {
  var rand = new Random();
  StringBuilder str1 = new StringBuilder();
  str1.Append("赵、钱、孙、李、周、吴、郑、王、冯、陈、楮、卫、蒋、沈、韩、杨、朱、秦、尤、许、何、吕、施、张、孔、曹");
  var familyNameItems = str1.ToString().Split("、");
  StringBuilder str2 = new StringBuilder();
  str2.Append("宏子 婷婷 蓉蓉 丽娜 娜 钰 天霞 官君 红梅 淑慧 海娟 洪山 ");
  str2.Append("盼丽 艳红 甜甜 璨 彬彬 银红 晨曦 婷 广荣 蓓 小艳 欣如 辅仁 嘉 雯婷 玉红 晨霞 ");
  str2.Append("涵 明 丽娜 青 茵 瑞微 逸群 思阳 臻 勇 志光 克涛 靖华 慧霞 卫伟 藜文 清华 莎 晓新 ");
  str2.Append("安安 荌荌 安卉 安娜 安妮 安然 傲冬 傲晴 傲雪 白雪 白云 碧螺 碧菡 碧玉 冰蓝 ");
  str2.Append("含烟 含玉 涵菡 晗蕾 涵韵 晗玥 寒凝 寒香 寒雁 和悌 和美 和怡 和雅 和璧 和玉 ");
  str2.Append("红螺 虹雨 虹彩 虹英 虹颖 虹影 怀玉 慧心 慧颖 慧雅 慕青 问兰 尔岚 元香 曼文");
  var firstNameItems = str2.ToString().Split(" ");
  var departmentItems = new List<string> { "事业部", "文化部", "技术部", "客服部", "运营部" };
  var positionItems = new List<string> { "文员", "业务员", "开发人员", "客服员", "销售经理" };
  var statusItems = new List<int> { 1, 2, 3 };
  IDbConnection connection = new SqlConnection("Data Source=192.168.99.5;Initial Catalog=Test;User Id=sa;Password=123;");
  var items = new List<OAUser>();
  while (true)
  {
  var user = new OAUser
  {
  UserName = $"15{rand.Next(100000000, 999999999).ToString()}",
  PassWord = "123456",
  Salt = rand.Next(1111111, 6666666).ToString(),
  NickName = familyNameItems[rand.Next(0, familyNameItems.Count())]
  + firstNameItems[rand.Next(0, firstNameItems.Count())],
  IsFrozen = false,
  Position = positionItems[rand.Next(0, positionItems.Count())],
  Department = departmentItems[rand.Next(0, departmentItems.Count())],
  Status = statusItems[rand.Next(0, statusItems.Count())],
  Balance = rand.Next(10, 99999),
  CreateTime = DateTime.Now
  };
  items.Add(user);
  //批量数据写入,减少单条不断调用连接池次数
  if (items.Count < 2000)
  continue;
  StringBuilder strSql = new StringBuilder();
  strSql.Append("INSERT INTO [Test].[dbo].[OAUser]([Balance],[CreateTime],[Department],[IsFrozen] ,[NickName],[PassWord],[Position],[Salt],[Status] ,[UserName])");
  strSql.Append(" VALUES (@Balance,@CreateTime,@Department,@IsFrozen,@NickName,@PassWord,@Position,@Salt,@Status,@UserName)");
  connection.Execute(strSql.ToString(), items);
  Console.WriteLine($"成功将用户{items.Count}资料写入");
  items.Clear();
  }
  }
  }

  /// <summary>
  /// 用户表
  /// </summary>
  public class OAUser
  {
  /// <summary>
  /// 主健
  /// </summary>
  public int Id { set; get; }
  /// <summary>
  /// 用户账号
  /// </summary>
  public string UserName { set; get; }
  /// <summary>
  /// 用户密码
  /// </summary>
  public string PassWord { set; get; }
  /// <summary>
  /// 昵称
  /// </summary>
  public string NickName { get; set; }
  /// <summary>
  /// 加密盐
  /// </summary>
  public string Salt { set; get; }
  /// <summary>
  /// 是否冻结
  /// </summary>
  public bool IsFrozen { set; get; }
  /// <summary>
  /// 余额
  /// </summary>
  public decimal Balance { set; get; }
  /// <summary>
  /// 部门
  /// </summary>
  public string Department { set; get; }
  /// <summary>
  /// 职位
  /// </summary>
  public string Position { set; get; }

  /// <summary>
  /// 状态(1在职 2离职 3兼职)
  /// </summary>
  public int Status { set; get; }
  /// <summary>
  /// 创建时间
  /// </summary>
  public DateTime CreateTime { set; get; }
  }
  }
  速度还不错,达 7.2M/s 快接近我的网线最高速度了,我们是百M网卡,最高也是10M/S 左右
  普通表性能查询
  哎,先写到这里吧,拖了两个星期,也没空,或没心情往下面写,先搁着吧,往后再补上了



上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号