分区表

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("开始写入模拟数据");
            //多线程写入
            ; i < ; 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> { "文员", "业务员", "开发人员", "客服员", "销售经理" };
            , ,  };

            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 = ",
                    Salt = rand.Next(, ).ToString(),
                    NickName = familyNameItems[rand.Next(, familyNameItems.Count())]
                    + firstNameItems[rand.Next(, firstNameItems.Count())],
                    IsFrozen = false,
                    Position = positionItems[rand.Next(, positionItems.Count())],
                    Department = departmentItems[rand.Next(, departmentItems.Count())],
                    Status = statusItems[rand.Next(, statusItems.Count())],
                    Balance = rand.Next(, ),
                    CreateTime = DateTime.Now
                };
                items.Add(user);
                //批量数据写入,减少单条不断调用连接池次数
                )
                    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 左右

普通表性能查询

哎,先写到这里吧,拖了两个星期,也没空,或没心情往下面写,先搁着吧,往后再补上了

Microsoft Soft SQL Server 大数据----分区表性能测试的更多相关文章

  1. SQL Server 大数据搬迁之文件组备份还原实战

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...

  2. C# & SQL Server大数据量插入方式对比

    以下内容大部分来自: http://blog.csdn.net/tjvictor/article/details/4360030 部分内容出自互联网,实验结果为亲测. 最近自己开发一个向数据库中插入大 ...

  3. [转]Sql server 大数据量分页存储过程效率测试附代码

    本文转自:http://www.cnblogs.com/lli0077/archive/2008/09/03/1282862.html 在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下 ...

  4. SQL Server 大数据量insert into xx select慢的解决方案

    最近项目有个需求,把一张表中的数据根据一定条件增删改到另外一张表.按理说这是个很简单的SQL.可是在实际过程中却出现了超级长时间的执行过程. 后来经过排查发现是大数据量insert into xx s ...

  5. SQL Server 大数据量分页建议方案

    简单的说就是这个 select top(20) * from( select *, rowid = row_number() over(order by xxx) from tb with(noloc ...

  6. sql server 大数据, 统计分组查询,数据量比较大计算每秒钟执行数据执行次数

    -- 数据量比较大的情况,统计十分钟内每秒钟执行次数 ); -- 开始时间 ); -- 结束时间 declare @num int; -- 结束时间 set @begintime = '2019-08 ...

  7. sql server 大数据跨服务器迁移表数据——使用链接服务器

    1.创建链接服务器(填写链接服务器.远程登录.使用密码) 2.188.188.1.177是远程的 select count(*) from [188.188.1.177].BigDataAnalysi ...

  8. SQL SERVER大数据分页

    select * from (select rownum r, a.* from (select * from  table_name order by ndatetime desc ) a wher ...

  9. SQL Server 大数据量批量插入

    private void AddShuJu_Click(object sender, RoutedEventArgs e) { Stopwatch wath = new Stopwatch(); wa ...

随机推荐

  1. hbase 导入导出、hbase shell 基本命令。

    数据导入 ./hbase org.apache.hadoop.hbase.mapreduce.Driver import  表名    数据文件位置hdfs数据文件位置 可以加 前缀 file:/// ...

  2. 【noip模拟】局部最小值

    TimeLimit: 1000ms               MemoryLimit: 256MB Description 有一个n行m列的整数矩阵,其中1到n×m之间的每个整数恰好出现一次.如果一 ...

  3. 关于如何使用SVN的一些建议

    SVN是管理源码的主流方式之一,当多人同时编辑同一项目时经常会出现冲突,本文主要针对Asp.net 项目开发中使用SVN提出一点建议. 1.忽略asp.net 项目中的非源代码文件 .VS目录是vis ...

  4. JAVA线程sleep和wait方法区别

    一. sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复,调用sleep 不会释放对象锁.由于没有释放对象锁,所以不能 ...

  5. Unity3D项目程序加密-VirboxProtector加壳工具

    各位Unity3D的开发者,你还为你的代码被反编译而头疼, 混淆和加密已经失效,为内存dump代码而烦恼?是否辛苦制作的游戏被盗版被抄袭而烦恼? 是否害怕算法被别人参考要把算法写成C++而费劲周折? ...

  6. Centos虚拟机克隆模板

    Centos6模板 IPTABLES/SELINUX # iptalbes -F # service iptables save 或 # /etc/init.d/iptables stop # chk ...

  7. Linux新手的最佳包管理器

    一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Linux开发 中,包管理器非常重要,知道如何使用多种包 ...

  8. Java虚拟机运行时栈帧结构--《深入理解Java虚拟机》学习笔记及个人理解(二)

    Java虚拟机运行时栈帧结构(周志明书上P237页) 栈帧是什么? 栈帧是一种数据结构,用于虚拟机进行方法的调用和执行. 栈帧是虚拟机栈的栈元素,也就是入栈和出栈的一个单元. 2018.1.2更新(在 ...

  9. Eclipse 基础操作与设置

    1.快捷键 ctrl+F 在某个文档里搜索对应字段 ctrl+H 全文件查询对应字段 ctrl +shift +R 快速查找某个java类 ctrl +shift +O 自动导入需要的包,删除没用过的 ...

  10. 笔记:XML-解析文档-DOM

    要处理XML文档,就要先解析(parse)他,解析器时这样一个程序,读入一个文件,确认整个文件具有正确的格式,然后将其分解成各种元素,使得程序员能够访问这些元素,Java库提供了两种XML解析器: 像 ...