网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.SQL Server 服务器安装剖析.
.有用的SQL语句(删除重复记录,收.
.SQL Server性能的改进得益于逻辑.
.在Linux下访问MS SQL Server数据.
.SQL Server 2005 FOR XML嵌套查询.
.循序渐进讲解数据表的十二个设计.
.怎么清除sql server日志.
.讲解优化数据库时必须注意的一些.
.数据库查询结果的动态排序(3).
.数据复制的基本理念与复制技术面.
.实现上千万条数据的分页显示.
.死锁并不可怕也并不是难以解决的.
.Oracle、SQL Server中如何锁定DB.
.根据SQL存储过程名取得存储过程的.
.特殊数据(SQL).
.深入浅出SQL教程之Group by和Hav.
.创建一个表时表中列的顺序对性能.
.Berkeley DB数据库管理系统的技术.
.SQL Server2000 索引结构及其使用.
.把SQL结果中几行值串起来的sum_s.

生成50万条记录的大数据表的TSQL语句

发表日期:2006-10-27


经常做数据库访问性能测试时,需要用到数据量很大的表,自己动手写一段TSQL语句即可。

TSQL_生成表结构:
/**//****** 对象: 表 [dbo].[LargeTable]    脚本日期: 2006-10-26 15:40:27 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[LargeTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[LargeTable]
GO

/**//****** 对象: 表 [dbo].[LargeTable]    脚本日期: 2006-10-26 15:40:27 ******/
CREATE TABLE [dbo].[LargeTable] (
    [ID] [int] IDENTITY (1, 1) NOT NULL ,
    [Title] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
    [Content] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
    [PublicTime] [datetime] NULL ,
    [Author] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [IsTop] [tinyint] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [dbo].[LargeTable] WITH NOCHECK ADD
    CONSTRAINT [PK_LargeTable] PRIMARY KEY  CLUSTERED
    (
        [ID]
    )  ON [PRIMARY]
GO

ALTER TABLE [dbo].[LargeTable] ADD
    CONSTRAINT [DF_LargeTable_IsTop] DEFAULT (0) FOR [IsTop]
GO


exec sp_addextendedproperty N'MS_Description', N'作者', N'user', N'dbo', N'table', N'LargeTable', N'column', N'Author'
GO
exec sp_addextendedproperty N'MS_Description', N'内容', N'user', N'dbo', N'table', N'LargeTable', N'column', N'Content'
GO
exec sp_addextendedproperty N'MS_Description', N'文章表,包含100万条记录', N'user', N'dbo', N'table', N'LargeTable', N'column', N'ID'
GO
exec sp_addextendedproperty N'MS_Description', N'是否置顶 0.不置顶 1.置顶', N'user', N'dbo', N'table', N'LargeTable', N'column', N'IsTop'
GO
exec sp_addextendedproperty N'MS_Description', N'发布时间', N'user', N'dbo', N'table', N'LargeTable', N'column', N'PublicTime'
GO
exec sp_addextendedproperty N'MS_Description', N'文章标题', N'user', N'dbo', N'table', N'LargeTable', N'column', N'Title'


GO


TSQL_生成表数据:

/**//*truncate table largetable*/

declare @title nvarchar(100)
declare @content nvarchar(100)
declare @publictime datetime
declare @author nvarchar(10)
declare @istop tinyint

declare @randtime_month tinyint
declare @randtime_day tinyint
declare @randtime_hour tinyint
declare @randtime_minute tinyint
declare @randtime_second tinyint

declare @str varchar(30)

print '开始执行时间:' + cast(getdate() as varchar)
declare @i int,@count int
set @i=1
set @count=500000
while @i<=@count
begin
    set @randtime_month=rand(@i)*12
    set @randtime_day=rand(@i)*28
    set @randtime_hour=rand(@i)*24
    set @randtime_minute=rand(@i)*60
    set @randtime_second=rand(@i)*60
    set @str='2006-'+cast(@randtime_month as varchar)+'-'+cast(@randtime_day as varchar)+' '+cast(@randtime_hour as varchar)+':'+cast(@randtime_minute as varchar)+':'+cast(@randtime_second as varchar)
   
    set @title='文章标题'+cast(@i as varchar)
    set @content='文章内容'+cast(@i as varchar)
    set @publictime=convert(datetime,@str,120)
    set @author='作者'+cast(@i as varchar)
    if @i%10000=0
        set @istop=1
    else
        set @istop=0

    insert into largetable values(@title,@content,@publictime,@author,@istop)
   
    set @i=@i+1
end
print '执行完毕时间:' + cast(getdate() as varchar)

http://www.cnblogs.com/jiny-z/archive/2006/10/26/540801.html

上一篇:SQL Server 2005 - 善用 OPENROWSET 函数来存取大型对象(LOB) 人气:6154
下一篇:无法在 SQL Server 2005 Manger Studio 中录入中文的问题 人气:4705
浏览全部TSQL的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐