SQL Server报告服务(SSRS)是一个综合性和可扩展的报告平台,它包括一组集成化的处理组件、可编程接口和工具。在本文中,我们将详细地讨论SQL Server报告服务(SSRS)架构。 一、 简介 SSRS是一个综合性的可扩展报告平台,它包括一组集成的处理组件、编程接口和
SQL Server报告服务(SSRS)是一个综合性和可扩展的报告平台,它包括一组集成化的处理组件、可编程接口和工具。在本文中,我们将详细地讨论SQL Server报告服务(SSRS)架构。
一、 简介
SSRS是一个综合性的可扩展报告平台,它包括一组集成的处理组件、编程接口和工具。处理组件是SSRS多层架构的基础,并且能够彼此交互以检索数据、处理布局、生成和把一个报告提交到一个目标。SSRS支持两种类型的组件:
? 处理器-确保SSRS的一致性,并提供一个基础结构供开发人员添加新的功能(扩展)。在当前的SSRS发行版本中,处理器本身是不可扩展的。
? 扩展-由处理器调用的程序集,执行特定的处理功能,例如数据检索。开发人员能够编写定制扩展。
图1描述了报告服务架构图;本文后面将更详细地描述这些组件。该图中的箭头显示在SSRS的内部和外部的各组件(外部工具,应用程序,服务和工具)之间的数据流。
![]() 图1.SQL Server报告服务架构。 |
二、 ReportServer Web和Windows服务
Report Server被实现为web服务和Windows服务的"共同体"。这些服务共同工作以宿主、处理和提交报告。
当SSRS Windows服务启动时,它开始加载基本支持程序集(例如一个SQL数据提供者和接口库),但是它不加载扩展。在这个版本中,SSRS Windows服务处理加密和解密,用作调度和提交处理器的一个宿主。调度和提交处理器使用一个PollingInterval配置来监视"事件"(例如定时订阅)的SSRS目录和事件表格。事件指示SSRS"醒来"并开始处理。
类似于任何.NET web服务,SSRS web服务经由IIS激活("唤醒")并且在ASP.NET工作进程(aspnet_wp.exe)中执行。可编程接口使"唤醒"事件更容易。
三、 可编程接口
报告服务可编程接口接收SOAP(经由SSRS web服务)和HTTP请求(经由URL存取)。
SSRS 2005 web服务提供三种端点:
? http://localhost/ReportServer/ReportService.asmx的提供是为实现与SSRS2000的向后兼容性。
? http://
? http://
一个端点名描述了相应的使用目的。例如,执行端点的设计是为了提供报告执行(处理)接口,并且相应地提供对函数(例如Render)的存取功能。Render函数把生成的报告以一个指定格式(例如HTML)的流形式返回。
可编程接口便利了从SSRS目录中实现信息检索和在SSRS组件之间的信息交换。
当请求一个报告时(或者通过交互方式或者通过调度和提交处理器),可编程接口初始化该报告处理器组件并开始处理一个报告。
四、 Report Processor(报告处理器)
报告处理器把一个Report Server的所有组件绑定到一起,并且负责在SSRS内部的缓冲。缓冲是指,当一个用户打开该报告时,SSRS能够保持处理过的报告的一个副本并且返回该副本。缓冲能够缩短检索一个报告要求的时间,特别如果该报告很大或经常被存取的情况下。所有的报告缓存存储在SSRS目录(具体地说,是存储在ReportServerTempDB数据库)下,并且能够在SQL Server和Report Server重启时仍然存在。
报告处理器执行下列操作:
? 执行-检索一个报告定义,并且通过数据处理扩展把它与检索的数据相结合。该操作生成一个中间格式。
? 生成-使用生成扩展把中间格式生成为一个请求的输出格式。
? 模型处理-这类似Report Builder生成的报告的执行操作,其中包含一个语义模型(或一个简单的模型,它用作一个报告的一个数据源)和一个语义查询。语义查询是指针对一个模型的一个查询;就象一个SQL查询一样,它生成一个报告的数据集。
下面是报告处理器响应用户请求的方式:
? 新的交互式报告请求-中间格式被生成并被传递以便生成扩展;用户接收生成的报告。
? 请求生成缓存或快照-中间格式被生成并被存储在数据库中。
? 请求缓冲的报告或快照-中间格式被从缓存(或快照)中检索并被传递以便生成扩展;用户接收生成的报告。

本篇文章给大家带来了关于SQL的相关知识,其中主要介绍了SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询的方法,文中通过示例代码介绍的非常详细,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于SQL server的相关知识,其中主要介绍了SQL SERVER没有自带的解析json函数,需要自建一个函数(表值函数),下面介绍关于SQL Server解析/操作Json格式字段数据的相关资料,希望对大家有帮助。

如何优化sql中的orderBy语句?下面本篇文章给大家介绍一下优化sql中orderBy语句的方法,具有很好的参考价值,希望对大家有所帮助。

monacoeditor创建//创建和设置值if(!this.monacoEditor){this.monacoEditor=monaco.editor.create(this._node,{value:value||code,language:language,...options});this.monacoEditor.onDidChangeModelContent(e=>{constvalue=this.monacoEditor.getValue();//使value和其值保持一致i

本篇文章给大家带来了关于SQL server的相关知识,开窗函数也叫分析函数有两类,一类是聚合开窗函数,一类是排序开窗函数,下面这篇文章主要给大家介绍了关于SQL中开窗函数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下。

monacoeditor创建//创建和设置值if(!this.monacoEditor){this.monacoEditor=monaco.editor.create(this._node,{value:value||code,language:language,...options});this.monacoEditor.onDidChangeModelContent(e=>{constvalue=this.monacoEditor.getValue();//使value和其值保持一致i

1.缘起最近项目在准备搞SASS化,SASS化有一个特点就是多租户,且每个租户之间的数据都要隔离,对于数据库的隔离方案常见的有数据库隔离,表隔离,字段隔离,目前我只用到表隔离和字段隔离(数据库隔离的原理也是差不多)。对于字段隔离比较简单,就是查询条件不同而已,比如像下面的SQL查询:SELECT*FROMt_demoWHEREtenant_id='xxx'ANDis_del=0但是为了严谨,需求上需要在执行SQL之前检查对应的表是否带上tenant_id的查询字段

1.准备工作首先我们来创建一个SpringBoot工程,引入MyBatis等,如下:选一下MyBatis和MySQL驱动,做一个简单的测试案例。先来连接一下数据库:spring.datasource.username=rootspring.datasource.password=123spring.datasource.url=jdbc:mysql:///test05?serverTimezone=Asia/Shanghai创建一个User实体类,做一个简单的查询案例,如下:publicclas


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境