每天表里面有几千条数据产生,如何做优化?如何定时备份?

the_pain 2009-01-04 10:34:14
主要是这几个问题:
1.一张表里面每天新产生几千条数据,怎么样优化数据库?
2.我想每天晚上12:00定时备份数据库,该怎么做?不是手动的,是要写个程序.
3.每天几千条多么?
对大数据设计表的时候要注意什么吗?还有其它需要注意的事项么?

...全文
298 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
szsymz 2009-01-08
  • 打赏
  • 举报
回复
建立分区...具体看帮助
zzxap 2009-01-06
  • 打赏
  • 举报
回复
企业管理器—》 管理 —》 数据库维护计划 —》 新建维护计划
建立索引! 2、建立主键 3、尽量少NULL值,尽量减少不必要的列数
子陌红尘 2009-01-06
  • 打赏
  • 举报
回复
1.一张表里面每天新产生几千条数据,怎么样优化数据库?

首先,一天产生数K条记录,算不上大数据量;优化的原则取决于你对数据检索时的原则。
其次,如果数据存在时效性,那么可以采用当前数据表和历史数据表来存储不同实效范围的数据。


2.我想每天晚上12:00定时备份数据库,该怎么做?不是手动的,是要写个程序.

简单一点,在数据库服务器上配置定时备份数据库的计划任务。



3.每天几千条多么? 对大数据设计表的时候要注意什么吗?还有其它需要注意的事项么?

数据库表设计的原则我不想重复,对于存有大数据量的库表的数据库,优化通常不会一步到位,而是需要循序渐进的优化。

qilinxing 2009-01-06
  • 打赏
  • 举报
回复
学习
-狙击手- 2009-01-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 the_pain 的帖子:]
主要是这几个问题:
1.一张表里面每天新产生几千条数据,怎么样优化数据库?
2.我想每天晚上12:00定时备份数据库,该怎么做?不是手动的,是要写个程序.
3.每天几千条多么?
对大数据设计表的时候要注意什么吗?还有其它需要注意的事项么?
[/Quote]


1、几K不算大,优化的方向是什么,取决于你的业务需求
2、http://blog.csdn.net/happyflystone/archive/2008/01/18/2051325.aspx
3、不多,参照分区表、索引等
yuangang1011 2009-01-04
  • 打赏
  • 举报
回复
学习
yuangang1011 2009-01-04
  • 打赏
  • 举报
回复
可以用Job具体查资料,帮顶
the_pain 2009-01-04
  • 打赏
  • 举报
回复
1.怎么写作业?
2.sql2005里面的维护计划为什么我不能新建?
我连接05后,选"管理"--->"维护计划"---->"新建维护计划"它就报错:
"代理xp组件已作为此服务器安全配置的一部分被关闭....."
wsh236 2009-01-04
  • 打赏
  • 举报
回复
定时备份 写个作业吧,让作业定时备份就可以了,
作业执行这个存储过程

/*--备份数据库,并按日期生成备份目录

--邹建 2003.10--*/

/*--调用示例

--备份当前数据库
exec p_backupdb

--*/

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_backupdb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_backupdb]
GO

create proc p_backupdb
@dbname sysname='', --要备份的数据库名称,不指定则备份当前数据库
@bkfname nvarchar(260)='', --备份文件名,文件名中可以用\DBNAME\代表数据库名,\DATE\代表日期,\TIME\代表时间
@bkpath nvarchar(260)='c:\' --备份文件的存放目录,在该目录下创建每天备份的目录
as
declare @sql varchar(8000)
if isnull(@dbname,'')='' set @dbname=db_name()
if right(@bkpath,1)<>'\' set @bkpath=@bkpath+'\'
set @bkpath=@bkpath+convert(varchar,getdate(),112)+'\'

--创建目录
set @sql='md '+@bkpath
exec master..xp_cmdshell @sql,no_output

--备份处理
if isnull(@bkfname,'')='' set @bkfname='\DBNAME\_\DATE\.BAK'
set @bkfname=replace(replace(replace(@bkfname,'\DBNAME\',@dbname)
,'\DATE\',convert(varchar,getdate(),112))
,'\TIME\',replace(convert(varchar,getdate(),108),':',''))
set @sql='backup database '+@dbname
+' to disk='''+@bkpath+@bkfname+''''
exec(@sql)
go

speak000 2009-01-04
  • 打赏
  • 举报
回复
自动备份
企业管理器—》 管理 —》 数据库维护计划 —》 新建维护计划 设置好你需要的就行了
viva369 2009-01-04
  • 打赏
  • 举报
回复
1.合理设计索引,对历史数据做备份
2.通过作业执行备份语句,或者通过维护计划
3.不算多也不算少
kakusang 2009-01-04
  • 打赏
  • 举报
回复
数据量产生很大的话以一定的时间分割来创建多张表吧,比如我现在一个项目因为数据量很大所以创建的都是月度表。
定时备份的话sql有触发器的,用一下Job看看
zhnzzy 2009-01-04
  • 打赏
  • 举报
回复
1.怎么写作业?
---------
2000里面打开企业管理器,管理-->作业,新建就可以了
wushilin201 2009-01-04
  • 打赏
  • 举报
回复
每天几千条记录,实在是不多。

我这里的数据库,大概每天生成超过1W条记录,2年下来,数据库才2G左右。

不过如果是同一个表每天生产几千条记录的话,一年下来,就有几千W条记录,对以SQL2000(SQL2005除外)来说,

读写的速度是有点慢! 这里推荐把每年的数据分开。例如表table 那么2007年数据就存储在table2007中,2008年的数

据就放在表table2008中!

说了一大堆,现在进入主题:

一。如果这个表中查询比较多的话,建议加索引(索引对查询提高的效率很高!但插入的速度相对会低一些)。建立索引要注意:如果常常查询的条件是几个条件联合查询,那么建议增加联合索引。

二。定期备份:直接使用企业管理器中的数据库维护计划和作业!不过记得把数据库的Agent服务。

三。1.以查询为主的话,建立索引! 2、建立主键 3、尽量少NULL值,如果是数字的话,默认0 4、尽量减少不必要的列数

fcuandy 2009-01-04
  • 打赏
  • 举报
回复
直接维护计划向导
bluefangxiao 2009-01-04
  • 打赏
  • 举报
回复
SQL Server代理->作业->新建作业,在作业里执行定时备份的存储过程就可以了
ChinaJiaBing 2009-01-04
  • 打赏
  • 举报
回复

1.建立适当主键和聚集索引
2.新建一个计划任务
3.建视图数据最好能从流水里面取,避开从单据里面取。

ChinaJiaBing 2009-01-04
  • 打赏
  • 举报
回复

1.建立适当主键和聚集索引
2.新建一个计划任务
3.建视图数据最好能从流水里面取,必开从单据里面取。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧