仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1014|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL网页设计利用SQL Server 2000创立一时Job异步执...

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用server|创立|剧本|异步|实行
使用场景:
在复杂的数据库中良多庞大的更新查询十分的耗时。为了不用户长工夫的守候,那些耗时的操纵能够接纳异步实行的办法,立即前往实行信息给用户,同时在数据库背景实行操纵,比及实行终了再更新数据表。

开辟情况:
SQLSERVER2000.NET

办理计划:
在SQLSERVER2000中创立一个一时的Job,(大概流动的Job,依据详细的使用场景),传送必要实行的SQLbatch剧本,然后启动这个Job。如许就能够在数据库取得异步伐用的功效了。因为创立的是一时的Job,
SQLSERVER在该Job运转停止今后会主动删除该Job。

弱点:该存储历程必需指定命据库的名字

====================================================================================
/******************************************************************************
*Author:iret
*Desc:CreatetemporaryjobtoprovideasynchronouslyinvokingSQLbatch
*在SQLSERVER2000中创立用于实行异步伐用的一时Job
*@EXECSQL:Transact-SQLbatch
*Eample:EXECdbo.AsynchronousInvoking@EXECSQL=UPDTAEcustomerSETbalance=0
*弱点:该存储历程必需指定命据库的名字
*ModifiedDate:2004/11/03
******************************************************************************/
CREATEProceduredbo.AsynchronousInvoking
@EXECSQLnvarchar(4000)
AS

BEGINTRANSACTION
DECLARE@JobIDBINARY(16)
DECLARE@ReturnCodeINT
SELECT@ReturnCode=0

BEGIN

--Addthejob
EXECUTE@ReturnCode=msdb.dbo.sp_add_job@job_id=@JobIDOUTPUT,
@job_name=Ntemp_sqljob,
@owner_login_name=N,
@description=Ndescriptionforjob,--thedescriptionofthejob
@category_name=N[Uncategorized(Local)],
@enabled=1,
@notify_level_email=0,
@notify_level_page=0,
@notify_level_netsend=0,
@notify_level_eventlog=0,
@delete_level=3

IF(@@ERROR0OR@ReturnCode0)GOTOQuitWithRollback

--Addthejobsteps
EXECUTE@ReturnCode=msdb.dbo.sp_add_jobstep@job_id=@JobID,
@step_id=1,
@step_name=Nstep1,
@command=@EXECSQL,--sqlbatch
--弱点:该存储历程必需指定命据库的名字
@database_name=Nyour_database_name,--thedatabasenameofthejobtomanipulate
@server=N,
@database_user_name=Nappuser,
@subsystem=NTSQL,
@cmdexec_success_code=0,
@flags=0,
@retry_attempts=0,--executeonceonly
@retry_interval=0,
@output_file_name=N,
@on_success_step_id=0,
@on_success_action=1,--onsuccessabort
@on_fail_step_id=0,
@on_fail_action=2--onfailabort

IF(@@ERROR0OR@ReturnCode0)GOTOQuitWithRollback

--setthestarstepidofthejob
EXECUTE@ReturnCode=msdb.dbo.sp_update_job@job_id=@JobID,
@start_step_id=1

IF(@@ERROR0OR@ReturnCode0)GOTOQuitWithRollback

--AddtheTargetServers
EXECUTE@ReturnCode=msdb.dbo.sp_add_jobserver@job_id=@JobID,
@server_name=N(local)

IF(@@ERROR0OR@ReturnCode0)GOTOQuitWithRollback

END

COMMITTRANSACTION
GOTOEndSave

QuitWithRollback:
IF(@@TRANCOUNT>0)BEGIN
ROLLBACKTRANSACTION
RETURN1
END
EndSave:

--starthejobimmediately
EXEC@ReturnCode=msdb.dbo.sp_start_job@job_id=@JobID

--returntotheinvokerimmediately
RETURN@ReturnCode

GO
SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSON
GO


这章描述如何检查和处理在MySQL数据库中的数据损坏。如果你的表损坏很多,你应该尝试找出其原因!见G.1调试一个MySQL服务器。
只想知道 该用户已被删除
沙发
发表于 2015-1-19 19:03:23 | 只看该作者
在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。
admin 该用户已被删除
板凳
发表于 2015-1-28 09:38:26 | 只看该作者
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
精灵巫婆 该用户已被删除
地板
发表于 2015-2-5 18:14:04 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
再见西城 该用户已被删除
5#
发表于 2015-3-3 14:38:27 | 只看该作者
SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
兰色精灵 该用户已被删除
6#
发表于 2015-3-11 11:33:30 | 只看该作者
外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
山那边是海 该用户已被删除
7#
发表于 2015-3-18 08:15:35 | 只看该作者
现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-25 14:30:03 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 18:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表