使用SSRS的SQL Server安装礼仪(创建/使用视图,SP和UDF)

时间:2014-09-13 20:56:42

标签: performance reporting-services installation cpu-usage etiquette

我已经在这里放了一个背景来更快地回答问题。

- 保存和使用SSRS报告服务的视图,SP和UDF的最佳考虑方式是什么?许多用户将使用这些服务,并且某些报告已被发送出去?

我是否: -

  1. 通过预定作业在一夜之间将其写入表格,直接读取预先保存的查询结果?
  2. 使用带有基于每个Views SQL的索引的临时表的SP,将它们全部放在SSRS的一个位置?
  3. 如果答案是'这取决于我想要的',如果您指出任何可以让我了解理想设置的资源,以最小的性能问题将查询数据提供给SSRS,我将不胜感激。

    感谢你


    背景/解释 SQL Server对我来说并不陌生,但在构建SQL Server部分时,我不认为自己有足够的经验(1年)开发“礼仪”。我觉得我正在开发许多使用基本SQL知识,在线搜索和奇怪的MS SQL服务器课程形成的坏习惯。搜索量已经无穷无尽,我不是说SQL Server(UDF,SP和视图)的每个部分都没有答案。

    我工作的公司有许多服务器,许多数据库,用于许多外包前端系统。问题是性能,我搜索的越多,我就越发现我们的数据库设置现在可能完全疏忽和业余。当我加入设置时,使用了很多视图,每个“结束”视图都有一个超过4个视图的依赖树,包括使用函数,每个视图的范围从统计的聚合计算到通过枢轴和非透视的重新排列。给我的原因是我们可以挑选出哪个部分出错了。毫不奇怪,服务器现在突然已经有了足够的这一点,并且每次报告或视图都会影响用户的前端系统性能时,服务器的峰值达到100%。

    我的PP强调了我的挫败感和我在公司(代码猴)的位置,我自己找到了一个答案,这导致用键盘上的键将键推回键盘并吸引专家。

    如果这浪费了你的时间,或者设置让你的眼睛充满愤怒,请对评论保持温和。

1 个答案:

答案 0 :(得分:0)

这个问题对于stackoverflow来说实在太宽泛了。我会尝试快速概述一下我认为你在问什么,但实际上你在这里要求的答案太多了。该网站主要围绕解决特定问题,而不是一般的开发过程。我希望有人可能会出现并关闭你的问题。

每夜加载

根据任务的复杂程度,这正是SSIS(SQL Server Integration Services)的用途。您可以构建执行数据转换和数据加载的自动化流程。它用于构建可维护的数据集成解决方案。学习使用SSIS(特别是正确)是一项完整的任务。事实上,SQL Server 2012 MCSA的第3次考试完全是关于SSIS的。虽然如果你的表加载并不那么复杂,因为SQL Tasks可能同样有效。

数据库结构和视图/ SP /函数/等的使用

这是一个非常深刻的主题,它完全取决于您尝试做什么,数据结构如何,您运行的硬件类型等等。当然使用视图,功能,存储过程可以很好。它们使代码重用,并允许您将SSRS报告的逻辑封装在实际报告编写者之外。

但是,SQL需要写得很好,否则会遇到性能问题。但是,当然,无论你把代码放在哪里,这都是如此。即使SQL只是SSRS报告中的一个数据集,它也会运行缓慢,如果编写得不好,就会对服务器进行锤击。如果数据库未正确配置,则可能会产生糟糕的性能。用于加速数据库的索引和其他技术始终很重要。

最重要的是,所有事情都需要记录下来,以便其他人(或你的后来的自己)在十几个月内能够理解它。

培训

如果他们希望您开发复杂的数据库解决方案,我强烈建议您说服您的雇主向您发送一些学习SQL Server的课程。当然,通过这些课程来获得SQL Server 2012中的MCSA非常有用。获得认证无疑让我看到了许多可能实现我以前不了解或者没有想到的事情。

第一个考试将涵盖编写SQL查询以及可以帮助提高性能的不同内容以及在检索或编写数据时可以利用的许多很酷的功能。第二项考试将涵盖数据库服务器管理,故障排除和一些性能调整。第三项考试是关于SSIS以及如何存储数据以实现更好的分析和报告。

即使您只是阅读了这些考试的Microsoft Learning书籍而且从未参加过测试,您也会获得很多知识。还有其他很好的书籍,例如T-SQL Fundamentals by Itzik Ben-Gan但最终听起来你需要获得更深入的SQL Server平台知识才能真正做出关于如何实施解决方案的良好设计决策。

结论

最后,编程就是编程。尝试制定可行的可维护解决方案是您的第一个目标。之后调整系统的性能。语言和平台的细节并没有从中获取。但是为了从系统中获得最佳性能,您需要了解该系统。这里的答案是不能给你你需要知道的一切。