2

我有一些存储过程,我希望在服务器上同时运行。理想情况下,所有服务器都不依赖于连接到外部客户端。在SQL Server 2005中产生多个SQL任务

哪些选项是否有推出所有这些,并让它们同时运行(我甚至都不需要等到全部工序均由内部完成,以做额外的工作)?

我已经想到了:

  • 启动多个连接从 客户机,具有每个启动 适当SP。
  • 设置就业岗位 每个SP和启动从 SQL Server连接或SP的作业。
  • 使用 xp_cmdshell的启动额外的运行 相当于OSQL或whetever
  • SSIS - 我要看看是否可以在包动态写入处理更多个SP,因为我不知道我的客户有多少去访问去生产

在工作和CMDSHELL情况下,我可能会碰上从DBA权限级别的问题...

SSIS可能是一个不错的选择 - 如果我能表 - 驱动SP列表。

这是一个数据仓库的情况,以及工作在很大程度上是独立的,NOLOCK上的星星普遍使用。该系统是一个8路32GB机器,因此如果我发现问题,我会加载它并将其缩小。

我基本上有三层,第1层有少量的进程,并基本上取决于所有的事实/维度已被加载(有效的,星星是一个0层 - 是的,不幸的是,他们都需要加载),第2层有很多进程依赖于第1层的一些或全部,而第3层有很多进程依赖于第2层的一些或全部。我已经在表中存在依赖关系,并且只会最初同时在特定图层中启动所有特效,因为它们在一个图层内是正交的。

+0

如果没有在C#中动态构建一个包,您可能需要做一些表配置破解,包括提前确定并行性的级别,以及在pckg中强制某些特效在您的某个SQL Execute任务的线程上运行” ......希望让sense..email我,如果它不... – Codewerks 2008-10-02 23:47:56

+0

呀,很多建筑都将通过银行的约定确定,我可以动态地构建软件包(有一些来之不易的经验有),但我们只需要看。我甚至不确定他们会启用CLR。 – 2008-10-03 02:51:50

回答

1

最后,我创建了启动过程异步,因为他们一个C#的管理控制台程序能够运行并跟踪连接。

2

SSIS是您的选择吗?您可以创建一个包含并行执行SQL任务的简单包,以同时执行存储的过程。然而,根据您存储的特效做的事情,你可能会或可能不会从并行启动该得到的好处(例如,如果他们都访问相同的表中的记录,一个可能不得不等待锁释放等)

+0

SSIS可能是一个不错的选择 - 如果我可以桌面驱动SP列表,因为我不知道我的客户将获得多少访问权限。这是一个数据仓库的情况,而且这项工作在很大程度上是独立的,而且NOLOCK在星空中普遍使用。该系统是一个8路32GB机器 – 2008-10-02 15:25:39

1

有一次,我在一个名为Acumen Advantage的产品上做了一些架构工作,他有一个仓库经理来做这件事。

这种情况的基本策略是有一个与存储过程和它们的依赖关系的列表控制DB。根据依赖关系,您可以执行Topological Sort以为其提供运行命令。如果执行此操作,则需要管理依赖关系 - 存储过程的所有前驱都必须先完成,然后才能执行。只需在多个线程上启动sprocs就不会自行完成。

实现这意味着敲多的SSIS功能的头部和执行另一个调度。这对产品来说可以,但对于定制系统来说可能是过度杀伤力。一个简单的办法是这样的:

可以在更粗粒度级别通过由尺寸(有时称为主题面向ETL),其中单个SSIS包垂直组织ETL管理的依赖关系,并设置存储过程的取从提取到生成维度或事实表的数据。通常情况下,尺寸将大部分是孤立的,所以它们的相互依赖性最小。如果存在相互依赖关系,则使一个维度(或事实表)加载过程依赖于上游所需的任何内容。

每个装载机变得相对模块化的,你还是通过并行拉开加载进程,并让SSIS调度工作了得到并行的有用程度。依赖关系将包含一些冗余。例如,ODS表可能不依赖于维度负载的完成,但上游软件包本身会在组件完成之前直接将维度组件引入维度模式。然而,这是不太可能是一个问题,在实践中有以下原因:

  • 加载过程可能有很多,可以在此期间
  • 执行其他任务的最消耗资源的任务,几乎可以肯定将是事实表加载,这将主要不依赖于彼此。如果存在依赖关系(例如基于另一个表的内容的汇总表),则无论如何都无法避免。

您可以构建SSIS包,以便它们从XML文件中获取所有配置,并且可以在环境变量中提供该位置。这种事情可以通过调度系统(如Control-M)轻松实现。 这意味着改性SSIS包可以以相对少的人工干预来部署。制作人员可以交到包随着存储过程来部署和可mainain在每个环境基础上的配置文件,而无需在SSIS包手工小提琴配置。

+0

更新问题。 – 2008-10-03 16:16:22

1

你可能想看看业务代理和它的激活存储过程......可能是一个选项...