sql生成1000W数据

declare @d datetime
set @d=getdate()
select * from dbo.ChunkSegmentMapping
select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())

USE tempdb
GO
CREATE TABLE tb(id char(8))
CREATE UNIQUE INDEX IX_tb ON tb(id)
WITH IGNORE_DUP_KEY  -- --忽略重复记录的索引
GO
DECLARE @dt datetime
SET @dt = GETDATE()
SET NOCOUNT OFF
DECLARE @row int
SET @row = 1000000 --记录总数为W
WHILE @row >0
BEGIN
 RAISERROR('need %d rows', 10, 1, @row) WITH NOWAIT
 SET ROWCOUNT @row
 INSERT tb SELECT
 id = RIGHT(100000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 8)
 --FROM syscolumns c1, syscolumns c2  -- SET NOCOUNT ON 49 Second
 FROM syscolumns c1, sysobjects o -- SET NOCOUNT ON 47 Second
 SET @row = @row - @@ROWCOUNT  --设置下次循环需要插入的记录数量
END
SELECT BeginDate = @dt, EndDate = GETDATE(), Second = DATEDIFF(Second, @dt, GETDATE())
GO
SELECT COUNT(*) FROM tb
GO
SELECT * FROM tb
DROP TABLE tb

时间: 2024-08-10 22:05:26

sql生成1000W数据的相关文章

SQL Server 2008 R2如何生成带数据的数据库脚本

1.对想要复制的数据库右键,"任务","生成脚本" 2.下面需要注意的是,默认情况下,只会生成仅架构的脚本,也就是说仅仅有表结构,而没有数据的空壳.所以需要额外的设置. 在设置脚本编写选项,选择"高级" 然后在"要编写脚本的数据类型",选择"架构和数据" 3.运行生成的脚本. 注意修改数据库文件的位置,因为可能脚本中的路径在目标计算机中并不存在. SQL Server 2008 R2如何生成带数据的数据库脚

在SQL 中生成JSON数据

这段时间接手一个数据操作记录的功能,刚拿到手上的时候打算用EF做,后来经过仔细考虑最后还是觉定放弃,最后思考再三决定: 1.以模块为单位分表.列固定(其实可以所有的操作记录都放到同一个表,但是考虑到数据量大的时候查询性能的问题还是分表吧)列:主键ID.引用记录主键ID.操作时间.操作类型.详细信息(里面存储的就是序列化后的值) 2.在客服端解析保存的序列化的值 但是用xml还是用json呢,这有是一个问题,显然用xml在存储过程正很容易就能生成了:SELECT * FROM TABLE FOR 

SQL Server中公用表表达式(CTE)递归的生成帮助数据

本文出处:http://www.cnblogs.com/wy123/p/5960825.html 我们在做开发的时候,有时候会需要一些帮助数据,必须需要连续的数字,连续间隔的时间点,连续的季度日期等等常见很多人利用master库的spt_values系统表,这个当然没有问题 比如下面这个(没截完,结果是0-2047) 这样也可以使用,但是感觉不够灵活,一是不是随便一个账号都可以访问master数据库的,而是他这里面也只有这么一个连续的数字了,想要别的结果集就不太弄了,类似数据可以用公用表表达式C

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

原文:SQL Server 大数据搬迁之文件组备份还原实战 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) 注意事项(Attention) 疑问(Questions) 参考文献(References) 二.背景(Contexts) 有一个数据库大概在700G左右,需要从服务器A搬迁到服务器B,两台服务器网络传输速度可以达到8MB/s,怎么做才能更

用myEclipse连接数据源生成动态数据报表

连接数据库,通过数据库查询得到的数据生成动态的数据报表,首先需要用myEclipse连接到一个数据库,一般是在导航栏的右上方会有切换按钮,切换工作环境为 MyEclipse DataBase Explorer的工作环境,然后开发界面的左侧框会有 DB Drowser工作栏,右击工作栏内的MyEclipse Derby,New一个新的数据库连接,如下  然后测试连接成功后,将工作台切换到java ee开发模式,新建一个Report Web Project项目,一路点下一步到完成创建然后工作台切换成

Sql Server删除数据表中重复记录 三种方法

本文介绍了Sql Server数据库中删除数据表中重复记录的方法. [项目]数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除![分析]1.生成一张临时表new_users,表结构与users表一样:2.对users表按id做一个循环,每从users表中读出一个条记录,判断new_users中是否存在有相同的u_name,如果没有,则把它插入新表:如果已经有了相同的项,则忽略此条记录:3.把users表改为其它的名称,把new_use

SQL Server里面导出SQL脚本(表数据的insert语句)

转载自:http://hi.baidu.com/pigarmy/blog/item/109894c445eab0a28326ac5a.html 最近需要导出一个表的数据并生成insert语句,发现SQL Server的自带工具并米有此功能.BAIDU一下得到如下方法(亲测OK) 用这个存储过程可以实现: CREATE PROCEDURE dbo.UspOutputData @tablename sysname AS declare @column varchar(1000) declare @c

《SQL Server企业级平台管理实践》读书笔记——SQL Server中数据文件空间使用与管理

1.表和索引存储结构 在SQL Server2005以前,一个表格是以一个B树或者一个堆(heap)存放的.每个B树或者堆,在sysindexes里面都有一条记录相对应.SQL Server2005以后,引入了分区表的概念(Table Partition),在存储组织上,现有的分区基本上替代了原来表格的概念,原先表的概念成为了一个逻辑概念.一个分区就是一个B树或者一个堆.而一张表格则是一个到多个分区的组合. 1.1用B树存储于聚集索引的表数据页 如果一个表格上有聚集索引(Clustered In

SQL Server 迁移数据到MySQL

一.背景 由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据转移到MySQL:由于涉及的表比较多,所以想在MySQL中生成对应表并导入数据: 上网找了些资料,如:将ACCESS和MSSQL导入MYSQL中.MySQL Migration 实现 MSSQL 到 MySQL数据迁移,虽然不知道里面的做法是否可以成功转移,但是里面的过程比较复杂,没有去尝试,后来自己找到了方法,最重要就是简单和准确(暂时没发现明显的BUG),这里