C#+Sqlserver2008下分区表的使用
2015-07-30 16:51
351 查看
随着数据的越来越多,系统也渐渐地慢起来了,我从网上简单看了一下,sqlserver2008有分区表这个概念了,下午就写了一个例子用来测试一下分区表的使用,首先我建立了两个表,一个用户信息表,一个电量信息表,用户信息表里边写入了100户居民,电量信息表里边写入了三年的每个用户的每小时一包的数据,数据都是随机生成的,只是为了让数据量更大一些。脚本和代码如下所示:
我的机器配置还是很高的,大概跑了两个小时。
回来再接着讲分区表的使用。
USE Partition_Test; --我想创建两个表,第一个表是用户信息表 包含用户信息表和电量信息表 --第一个表包含的字段有 编号 用户姓名 用户编号 --第二个表包括 编号 起数 止数 差数电量 我想每个用户写入三年的电量 一个小时一包的话 100*365*3*24 --创建用户信息表 --CREATE TABLE YHXXB --( -- BH INT IDENTITY(1,1), --YHXM CHAR(20), --KHRQ DATETIME --) --电量信息表 --CREATE TABLE DLXXB( --BH INT IDENTITY(0,1), --YHBH INT, --QS FLOAT, --ZS FLOAT, --CSDL FLOAT, --SJRQ DATETIME --) --开始写入用户信息表 --INSERT INTO dbo.YHXXB -- ( YHXM, KHRQ ) --VALUES ( '', -- YHXM - char(10) -- '2015-07-30 06:17:01' -- KHRQ - datetime -- ) --INSERT INTO dbo.DLXXB -- ( YHBH , -- QS , -- ZS , -- CSDL , -- SJRQ -- ) --VALUES ( 0 , -- YHBH - int -- 0.0 , -- QS - float -- 0.0 , -- ZS - float -- 0.0 , -- CSDL - float -- '2015-07-30 06:53:09' -- SJRQ - datetime -- ) SELECT * FROM dbo.DLXXB WHERE SJRQ BETWEEN '2014-01-01' AND '2014-02-01';
<span style="font-size:18px;">using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; namespace PARTITION_Test { class Program { /// <summary> /// 获取随机数 /// </summary> /// <returns></returns> public static int FunctionGetRand() { int Int_Rand; Random ro = new Random(10); long tick = DateTime.Now.Ticks; Random ran = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32)); Int_Rand = ran.Next(50, 65536); return Int_Rand; } static void Main(string[] args) { //首先添加用户信息表 写入一百户数据 SqlConnection conn = new SqlConnection(); conn.ConnectionString = "server=.;database=Partition_Test;user id=sa;password=afanti"; try { conn.Open(); // SqlCommand cmd_InsertYHXX = new SqlCommand(); // cmd_InsertYHXX.Connection = conn; // for (int i = 0; i < 100; i++) // { // cmd_InsertYHXX.CommandText = "INSERT INTO dbo.YHXXB\r\n" + // "( YHXM, KHRQ )\r\n" + //"VALUES ( '"+"测试用户00"+ (i+1).ToString()+"', -- YHXM - char(10)\r\n" + // " '"+ DateTime.Now.ToString()+"' -- KHRQ - datetime\r\n" + // ")"; // cmd_InsertYHXX.ExecuteNonQuery(); // } // Console.WriteLine("用户信息添加成功!"); //添加电量信息 我就从2013年的1月1日起开始添加 //首先查询出所有的用户信息 SqlCommand cmd_YHXXQuery = new SqlCommand(); cmd_YHXXQuery.Connection = conn; cmd_YHXXQuery.CommandText = "SELECT * FROM dbo.YHXXB;"; SqlCommand cmd_InsertDLXX = new SqlCommand(); cmd_InsertDLXX.Connection = conn; SqlDataAdapter sda_Query = new SqlDataAdapter(cmd_YHXXQuery); DataSet ds = new DataSet(); sda_Query.Fill(ds,"YHXXB"); string Str_YHBH = string.Empty; //用户编号 DateTime dt_Start = Convert.ToDateTime("2013-01-01"); for (int i = 0; i < ds.Tables["YHXXB"].Rows.Count; i++) { Str_YHBH = ds.Tables["YHXXB"].Rows[i][0].ToString().Trim();//用户编号 dt_Start = Convert.ToDateTime("2013-01-01"); for (int j = 1; j <= 26280; j++) { cmd_InsertDLXX.CommandText = "INSERT INTO dbo.DLXXB\r\n"+ " ( YHBH ,\r\n" + " QS ,\r\n" + "ZS ,\r\n" + "CSDL ,\r\n" + " SJRQ\r\n" + " )\r\n" + "VALUES ( "+ Str_YHBH+" , -- YHBH - int\r\n" + " " + FunctionGetRand() + " , -- QS - float\r\n" + "" + FunctionGetRand() + " , -- ZS - float\r\n" + "" + FunctionGetRand() + ", -- CSDL - float\r\n" + "'"+ dt_Start.ToString()+"' -- SJRQ - datetime\r\n" + ")"; cmd_InsertDLXX.ExecuteNonQuery(); dt_Start = dt_Start.AddHours(1); } Console.WriteLine(Str_YHBH+"电量信息添加成功!"); } Console.WriteLine("所有信息添加成功!"); Console.ReadLine(); } catch (Exception ex) { throw ex; } finally { conn.Close(); } } } }</span>
我的机器配置还是很高的,大概跑了两个小时。
回来再接着讲分区表的使用。
相关文章推荐
- Oracle 学习之RMAN(一)架构
- 【Oracle】Oracle如何实现创建数据库、备份数据库及数据导出导入
- spark sql建表的异常
- SQL Server 之 GROUP BY、GROUPING SETS、ROLLUP、CUBE
- Android存储数据的方法:SharedPreference、File I/O、SQLite与ContentProvider分析
- django mysql 读写分离
- ERP选型 SAP PK Oracle
- python如何实现excel数据添加到mongodb
- Mysql基本检索数据方法大全
- Oracle存储过程基本语法
- Sql Server中创建函数
- oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)
- 中文linux安装oracle界面乱码解决方案
- 如何修改MySQL编码匹配当前软件的编码 ,同时解决“Data too long for Column”问题
- Centos6.6 安装Oracle 11g
- AIX 未开启AIO引起SQLPLUS登陆报错exec(): 0509-036
- jsp与mysql中的中文字符乱码问题
- Oracle Database 11g Express Edition入门(数据库启动与关闭)
- Oracle的分页查询语句
- java操作redis