|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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服务器。 |
|