關(guān)于SQL Server 2008中報表服務的詳解_Mssql數(shù)據(jù)庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:如何使用SQL Server代理運行CmdExec命令
      需求:調(diào)用網(wǎng)服務器(SMS SQL Server)上的短信發(fā)送接口(是一個存儲過程)來發(fā)送(Stage SQL Server)上的數(shù)據(jù)內(nèi)容到本Team 成員的手機上。這兩臺服務器,本地在撥VPN后可以訪問。要求以本

      一、導言

      盡管公司經(jīng)常采集和存儲大量的數(shù)據(jù),但是有時還是難以詳盡地顯示數(shù)據(jù),而且也很難提供對商業(yè)中將發(fā)生什么的洞察以使商業(yè)決策者為公司作出相應的和及時的決策。

      為了能作出有效的商業(yè)決策,公司內(nèi)從業(yè)務經(jīng)理到信息工作人員的所有層級的用戶需要能很容易的訪問到直接提供信息的綜合了從企業(yè)內(nèi)多個數(shù)據(jù)源獲得的數(shù)據(jù)的報表。在大多數(shù)公司里,這些報表需要結(jié)合詳細的數(shù)字和基于文本的報表,這些報表提供了對公司活動的全面的說明和圖形化的可視化,它幫助使得可以更好的查看趨勢和進行比較。

      報表服務為公司提供了滿足各種各樣的報表場景的能力。

      · 即席報表生成。使用戶可以創(chuàng)建他們自己的報表,并使他們快速靈活的獲得他們需要的信息,并且是以他們需要的格式,而不必提交請求和等待報表開發(fā)人員來為他們創(chuàng)建報表。

      · 內(nèi)嵌的報表。使公司可以將報表直接內(nèi)嵌到商業(yè)應用程序和web門戶網(wǎng)站中,使得用戶可以在他們的業(yè)務處理過程中使用這些報表。與Microsoft Office SharePoint Server 2007的深度集成還使得公司可以通過一個中央庫來發(fā)送報表,或直接在SharePoint中使用用于輕度渲染報表的web部分,使得能夠輕松的創(chuàng)建儀表盤。在這種方式下,公司可以將整個公司的所有關(guān)鍵的商業(yè)數(shù)據(jù),包括結(jié)構(gòu)化的和非結(jié)構(gòu)化的放在一個中央存儲地址,為信息訪問提供了一個共同的體驗,以便用戶可以瀏覽到主要的業(yè)務執(zhí)行信息。

      這篇白皮書描述了SQL Server 2008報表服務怎樣提供了一個全面的基于服務器的平臺來很容易的支持這一廣泛的報表需求。

      二、制作報表

      在許多公司里,制作報表是個重要的工作。企業(yè)中的主管、業(yè)務分析師、經(jīng)理、和不斷增長的信息工作人員依賴于易理解的報表中獲得的及時和準確的信息來有效的進行他們的工作。SQL Server 2008報表服務包含全面的報表制作工具,和一些報表格式創(chuàng)新,使得可以輕松的創(chuàng)建提供信息的報表,并提供給雇員所需要的信息,以對于你的公司來說最有效的格式。

      使用報表開發(fā)工具

      在大多數(shù)公司里,有兩組截然不同的人創(chuàng)建報表;習慣于工作在全面的開發(fā)環(huán)境中的熟練的商業(yè)智能解決方案開發(fā)人員,和不熟悉數(shù)據(jù)庫架構(gòu)設(shè)計、并需要一個抽象了后臺的技術(shù)復雜性的直接的報表設(shè)計環(huán)境的商業(yè)用戶。

      SQL Server 2008滿足了這兩種需要,它提供了為滿足這兩種用戶的需求而特別設(shè)計的直接的報表開發(fā)工具。這使得開發(fā)人員可以創(chuàng)建用于整個企業(yè)的復雜的報表解決方案,同時使得商業(yè)用戶可以很容易的專注于與他們的業(yè)務領(lǐng)域相關(guān)的專門的數(shù)據(jù)。

      報表設(shè)計器(Report Designer )

      報表設(shè)計器為開發(fā)人員和高級報表制作人員提供了一個非常靈活和高效的報表制作環(huán)境,如圖1所示。報表設(shè)計器是SQL Server商業(yè)智能開發(fā)套件的一個組件,SQL Server商業(yè)智能開發(fā)套件是一個基于Microsoft Visual Studio的通用開發(fā)界面的商業(yè)智能開發(fā)環(huán)境。這個設(shè)計界面使得開發(fā)人員可以很容易的為一個報表定義從多個數(shù)據(jù)源而來的數(shù)據(jù)集、設(shè)計報表的布局,然后在將它部署到報表服務器上之前直接在設(shè)計環(huán)境中預覽報表。開發(fā)人員使用報表向?qū)Э梢钥焖俨⑷菀椎貏?chuàng)建報表,或者他們也可以通過使用報表設(shè)計器中的可視化的設(shè)計環(huán)境建立更廣泛的報表。內(nèi)置的查詢設(shè)計器簡化了報表所使用的數(shù)據(jù)集的提取工作,并且可以直接拖拉的設(shè)計界面使得可以很容易的布置報表元素用于顯示。當一個開發(fā)人員完成了一個報表,他們可以預覽這個報表并將其直接從報表設(shè)計器部署到報表服務器上。

      圖1: 報表設(shè)計器

      報表生成器(Report Builder)

      讓開發(fā)人員可以開發(fā)強大的可以部署給上千名用戶的報表是非常有價值的,并且為全公司帶來了一致的、專業(yè)設(shè)計的報表。然而,有時個別的商業(yè)用戶需要能夠修改報表或甚至是創(chuàng)建他們自己的有特殊要求的報表。報表生成器是一個易于使用,專注于業(yè)務的報表查詢工具,它通過報表模型抽象了后臺的業(yè)務數(shù)據(jù),報表模型反映了業(yè)務實體例如客戶、產(chǎn)品、銷售,等等。報表生成器如圖2所示。通過創(chuàng)建一個模型反映這個面向業(yè)務的數(shù)據(jù)視圖,報表生成器使得商業(yè)用戶可以創(chuàng)建強大的報表而不需要了解后臺數(shù)據(jù)庫結(jié)構(gòu)或查詢語句的全面知識。

      圖2:報表生成器

      訪問用于創(chuàng)建報表的數(shù)據(jù)源

      大多數(shù)公司在它的多個應用程序和數(shù)據(jù)庫中具有數(shù)據(jù)。為了獲得對業(yè)務執(zhí)行的充分理解,用戶需要一個可以從公司的多個異構(gòu)的數(shù)據(jù)源提取數(shù)據(jù)的報表解決方案。例如,公司里的銷售主管可能需要一個結(jié)合了從會計部門的Oracle數(shù)據(jù)庫提取的數(shù)據(jù)和從基于Microsoft SQL Server的CRM應用獲得的客戶數(shù)據(jù)的報表。SQL Server 2008報表服務支持訪問用于報表創(chuàng)建的多個數(shù)據(jù)源,包括SQL Server關(guān)系數(shù)據(jù)庫、SQL Server分析服務、Oracle、DB2和 Hyperion Essbase;而且使得報表制作可以將從多個數(shù)據(jù)源獲得的數(shù)據(jù)結(jié)合到一個單獨的報表中。此外,有了SQL Server 2008報表服務,報表制作人員可以從SQL Server關(guān)系數(shù)據(jù)庫、SQL Server分析服務立方體和Oracle數(shù)據(jù)庫生成要和報表生成器一起使用的報表模型。

      創(chuàng)建引人注目的報表

      商業(yè)用戶要求能夠靈活地查看和顯示不同類型、不同格式的數(shù)據(jù)。報表服務滿足了這一需求,它提供了一組強大的引人注目的報表制作特性,包括多個顯示和參數(shù)選項、交互能力、豐富的文本格式、和許多繪制圖表的功能。

      用戶查看和與報表交互時有不同的需求和期望,而且一個報表格式對某種類型的數(shù)據(jù)可能很適用,但可能不適合于其它類型的數(shù)據(jù)。SQL Server 報表服務支持一些顯示選項,使你創(chuàng)建的報表采取最適合要使用它的用戶的顯示形式。

      SQL Server 報表服務使用數(shù)據(jù)顯示類型來定義報表中的數(shù)據(jù)的顯示。你可以使用下面的數(shù)據(jù)顯示類型來顯示數(shù)據(jù):

      · 列表。一個隨意的數(shù)據(jù)顯示。

      · 圖表。一個圖形格式,它以圖表的形式顯示數(shù)據(jù)。

      · 表。一個表格格式,在這種格式下,數(shù)據(jù)按行和列顯示。你可以創(chuàng)建具有層次結(jié)構(gòu)的一些行來反映你的數(shù)據(jù)的分組和顯示分組的總和。

      · 矩陣。這是一個支持行和列分組的格式,它可以在行和列的交叉單元格里顯示合計的總數(shù)據(jù),類似于樞軸表或交叉表。

      · Tablix。 一個混合了表和矩陣的格式,是隨著SQL Server 2008報表服務的發(fā)布而推出的。

      Tablix

      如上面所提到的,SQL Server 2008推出了一個新的數(shù)據(jù)顯示類型,叫做Tablix 。正如名字所顯示的,Tablix 是表和矩陣數(shù)據(jù)類型的最佳功能的結(jié)合。Tablix 使你可以創(chuàng)建使用了一個靈活的具有多個行和列的分組的布局的報表,使得可以很容易的建立通用的報表顯示,而這對于使用目前的市場中可用的報表制作工具是很難或不可能完成的。有了Tablix ,你可以建立的報表包括以下內(nèi)容:

      固定的和動態(tài)的行和列。在一個表里,一個報表可以有動態(tài)的行,在這些行里可以有重復和內(nèi)嵌的組,但是列是固定的。在一個矩陣里,一個報表可以有動態(tài)的行和列,但是不能包含固定的行和列。有了Tablix ,這些限制就沒有了,報表既可以包含動態(tài)的行和列,也可以包含固定的行和列。

        在行和列上都可以進行隨機嵌套。當在之前的報表服務的版本中使用表的時候,只可以對行進行隨機嵌套。隨著Tablix的推出,隨機嵌套在行和列上都可以使用了。

         可選擇省略行和列的頭。因為Tablix 提供了表和矩陣的所有有用的功能,報表制作者可以省略行和列的頭。這個技術(shù)在先前只能用在矩陣里,但有了Tablix ,它也可以用在表上了。

      在每一級上有多個并行的行和列。在同一個報表里應用多個并行的行和列的能力是一個新的獨特的設(shè)計特性,它可以顯著的改善報表中信息的顯示方式。例如,當設(shè)計一個銷售報表時,報表制作者可以選擇讓一個顯示年的列具有一個動態(tài)的層次關(guān)系,它之后有一個動態(tài)的產(chǎn)品列,如下面的插圖所示。注意這兩個層次關(guān)系挨著顯示,但是是各自獨立的,同時共享同一行的數(shù)據(jù)值。

      地方銷售報表

      產(chǎn)品
      2005 2006 桌子 椅子
      Washington Seattle 50 60 20 30
      Spokane 30 40 10 20
      Oregon Portland 40 50 10 10
      Eugene 20 30 25 5

      圖表

      大量復雜的文本格式的數(shù)據(jù)對于用戶來說是很難理解的。隨著在報表服務中對新的可視化能力的大量投入,SQL Server 2008提供了一個增強了的制圖引擎,包括許多豐富的圖表,使得決策者可以以一種友好的格式來查看數(shù)據(jù),并可以立即使他們看到這個大圖。報表服務提供給用戶許多圖表類型,包括傳統(tǒng)的條狀圖、區(qū)域圖、列、環(huán)狀圖、線、和餅圖。報表服務2008還包括對區(qū)域評測類型圖表的支持,有多圖表區(qū)域和圖例、全距圖、極區(qū)圖、雷達圖、錐形圖、漏斗圖。圖表的增強,例如注釋和對大型數(shù)據(jù)的支持,為你的報表環(huán)境提供了更好的靈活性。

      交互功能

      SQL Server 2008報表服務提供了一些報表設(shè)計功能使得開發(fā)人員可以創(chuàng)建具有高度動態(tài)性的報表,這些報表為用戶提供了與數(shù)據(jù)交互和更深的顯示數(shù)據(jù)的能力。可以添加到報表中的交互式的元素包括:

      · 參數(shù)。給報表添加參數(shù)使得在報表被處理的時候,用戶可以提供他指定的值以便過濾報表中顯示的信息。例如,一個用戶可以為一個銷售報表提供一個區(qū)域參數(shù)值,使得只查看在指定區(qū)域的銷售記錄。參數(shù)幫助報表制作者用一個報表獲得更廣泛的用戶群,并提供給用戶更靈活和交互性更強的體驗。

      · 交互式排序。對報表應用排序功能使得用戶可以按報表所包含的任一列數(shù)據(jù)按升序或降序排列。例如,一個用戶查看一個包含銷售信息的報表,他可能先按日期排列數(shù)據(jù),然后按銷售數(shù)量排序。

      · 活動。開發(fā)人員可以給報表添加鏈接,使得用戶可以執(zhí)行動作,例如跳轉(zhuǎn)到報表中的另一部分、打開一個外部網(wǎng)頁、或打開另一個相關(guān)的報表以便執(zhí)行鉆透分析。例如,一個報表可能列出了本月訂單的訂單號、客戶名稱和銷售數(shù)量。報表開發(fā)人員可以添加一個鉆透動作到這個報表中以便用戶點擊了某一訂單的訂單號之后,可以打開一個顯示這個訂單細節(jié)的報表。

      · 文檔結(jié)構(gòu)圖。用戶使用一個文檔結(jié)構(gòu)圖輕松的操縱報表。文檔結(jié)構(gòu)圖在報表中顯示為一個側(cè)面面板,用戶可以使用它包含的層次鏈接移動到報表的各個部分。

      · 子報表。開發(fā)人員可以將一個報表內(nèi)嵌到另一個報表之中作為一個子報表;報表服務的一個強大功能是使得開發(fā)人員可以顯示一個直接作為另一個報表的一部分的報表的信息。例如,一個開發(fā)人員可能創(chuàng)建一個顯示公司內(nèi)所有銷售區(qū)域的報表,而它有一個子報表顯示每一個區(qū)域的銷售情況。

      三、管理報表服務

      管理員可以以兩種模式之一來管理一個SQL Server 2008解決方案;本地模式和SharePoint 集成模式。當運行在本地模式時,管理員可以使用一組全面的管理和配置工具,它們提供了一個覆蓋所有SQL Server 2008技術(shù)的統(tǒng)一的體驗。數(shù)據(jù)庫管理員可以利用SQL Server 管理套件來集成一個報表服務實例的管理和SQL Server數(shù)據(jù)庫引擎管理,并且通過使用SQL Server配置管理器MMC snap-in(管理單元)創(chuàng)建一個定制的Microsoft管理控制臺,這樣就可以提供給系統(tǒng)管理員報表服務的服務管理了。

      當運行在SharePoint 集成模式下時管理員可以利用SharePoint 的集成管理功能和受益于SharePoint中直接在這兩個服務器組件上的一個單獨的集成管理體驗。

      擴展管理能力

      報表管理器(Report Manager) ,如圖3所示,它是一個基于Web 的工具,它可以用在本地模式下通過Web訪問和管理報表服務。有了報表管理器 ,管理員可以執(zhí)行很多的任務,包括從任何機器上通過一個瀏覽器查看和管理報表和訂閱、配置報表處理選項、和配置安全。

        

      圖3: 報表管理器(Report Manager)

      配置一個報表服務實例

      使用SQL Server安裝程序安裝報表服務時,選擇默認的配置會自動進行用于報表服務的整個配置過程。然而,許多公司經(jīng)常在首次安裝之后添加和改變報表服務配置選項,;例如部署一個報表服務解決方案作為一個可擴展的網(wǎng)絡(luò)場。報表服務配置管理器,如圖4所示,使得管理員可以很輕松的執(zhí)行每一個要求配置一個報表服務部署的任務,這使得降低了停機時間和加快了報表解決方案的生成。

      圖4: 報表服務配置管理器(Reporting Services Configuration Manager)

      Microsoft Office SharePoint Services集成

      SharePoint 集成模式提供了通過一個SharePoint站點對報表服務器內(nèi)容的訪問和操作。SharePoint 集成提供了共享存儲、共享安全、和相同的站點來訪問所有的業(yè)務文檔,包括報表、報表模型、和共享數(shù)據(jù)源。文檔協(xié)作和管理功能,例如將報表鎖定或提交以用于修改,通知對報表的更改,和SharePoint的工作流能力可以為你的報表環(huán)境提供更好的說明性和靈活性。此外,報表可以直接嵌入到SharePoint 頁面上為用戶提供無縫的、連貫的報表體驗。

      保護報表服務

      安全總是數(shù)據(jù)管理員首要考慮的問題。報表服務提供了基于靈活角色的安全授予管理權(quán)利和對共享的數(shù)據(jù)源、報表、文件夾、和資源的訪問的保護。管理員可以使用內(nèi)置的和定制的角色定義來很好的調(diào)整他們的報表環(huán)境的安全性。一個用戶可以隨著不同的項目而屬于不同的角色類型。例如,一個用戶可以是他們部門所管理的報表的內(nèi)容管理員角色的成員,同時也可以是為公司內(nèi)另一個部門所開發(fā)的報表的瀏覽角色的成員。

      管理員通過SharePoint集成可以進一步增強安全管理。當報表服務運行在SharePoint 集成模式下時,SharePoint 權(quán)利可以用于管理SharePoint庫中的報表和文件夾。

      四、發(fā)送報表

      公司認識到對更多的用戶群提供商業(yè)智能所帶來的收益;使得更多的用戶可以基于過去只對一少部分的業(yè)務分析師開放的信息制定決策和執(zhí)行任務。今天所面臨的一個挑戰(zhàn)是要將這個數(shù)據(jù)發(fā)送給幾千名可以受益于對這個數(shù)據(jù)的訪問的商業(yè)用戶。SQL Server 2008報表服務具有有效的發(fā)送格式豐富的報表給需要它們的用戶的能力。

      高性能的報表處理

      在許多報表解決方案中,巨大的報表會消耗報表服務器的可用內(nèi)存,從而使得其它較小的報表執(zhí)行失敗。SQL Server 2008報表服務包含一個可擴展的報表引擎,它限制了內(nèi)存的使用和與非內(nèi)存限制的報表的沖突。報表性能也通過按需處理和基于實時的渲染而得到了優(yōu)化。

      緩存

      報表服務通過提供了報表的緩存進一步提高了性能。通過緩存經(jīng)常使用相同的參數(shù)值進行訪問的報表,公司可以降低渲染報表所需要的處理費用。在報表處理之后,緩存拷貝就可以用于其他后來訪問同一個報表的用戶而不需要再作任何處理。有了這個方法,如果多個用戶打開這個報表,只有第一個請求會產(chǎn)生報表處理過程。然后這個報表被緩存起來,其余的用戶查看到的是這個緩存的報表。

      快照

      報表服務支持快照報表的創(chuàng)建,快照報表是按照一個預先計劃的時間間隔進行渲染,然后用于用戶查看。快照類似于緩存報表;主要的區(qū)別是快照通常是按照一個計劃定期的創(chuàng)建的。像緩存報表一樣,快照可以通過定期生成復雜或耗時的報表來提高報表性能,并使得用戶可以查看預先生成的快照而不是按需生成報表。快照報表還是一個可維護歷史報表的有用的方法,因為每一個報表實例都反映了快照產(chǎn)生時的數(shù)據(jù)情況。

      多種文件格式

      用戶需要能夠訪問和共享采用他們最熟悉的格式的報表。報表服務2008支持渲染最常見的文件格式,包括HTML、PDF、CSV、XML和圖像 (TIFF),并提供了在Microsoft Office Word中的新的渲染和在Microsoft Office Excel 中的改進的渲染。Microsoft Office格式的報表是完全可編輯的,使用戶可以基于這些報表創(chuàng)建定制的文檔。

      通過訂閱發(fā)送報表

      報表服務支持標準的和數(shù)據(jù)驅(qū)動的訂閱,使得可以自動發(fā)送報表給正確的用戶,直接將報表通過電子郵件發(fā)送給每一個用戶或者發(fā)送給用戶一個文件共享,用戶從這里可以獲得報表。用戶可以使用標準的訂閱,使報表基于一個定制時間表和明確指定的報表參數(shù)的值進行發(fā)送。集中管理數(shù)據(jù)驅(qū)動的訂閱在運行時從一個外部數(shù)據(jù)源獲得訂閱屬性,它使得可以發(fā)送相同的報表給多個用戶,而每一個都具有它們各自的報表參數(shù)和渲染格式要求。

      默認情況下,報表可以通過電子郵件發(fā)送給訂閱人或文件共享提供給訂閱人。開發(fā)人員可以通過增加額外的將報表發(fā)送到其它地方的發(fā)送擴展來增強環(huán)境。

      將報表嵌入到商業(yè)應用中

      通過使用ReportViewer控件可以將報表內(nèi)嵌到商業(yè)應用程序中;這是Visual Studio提供的一個報表服務控件。這個控件使你可以在一個.NET應用中顯示報表,例如一個ASP.NET網(wǎng)頁或一個Windows桌面應用程序。

      ReportViewer控件支持本地模式,這種模式下報表在客戶端應用程序中進行處理,ReportViewer控件還支持遠程模式,這種模式下報表運行在一個遠程報表服務的報表服務器上。一個小公司開始的時候可以采用能力比較受限的本地模式執(zhí)行,而隨著公司的使用增加和報表需求的增加可以升級到完全的報表服務綜合執(zhí)行。

      許多公司使用SharePoint解決方案來推動雇員、合作伙伴、甚至是和客戶間的協(xié)同工作。配置報表服務運行在SharePoint集成模式下使得用戶可以發(fā)布或上傳報表、報表模式、資源和共享的數(shù)據(jù)源文件到一個SharePoint庫。這使得你可以通過創(chuàng)建從報表服務顯示報表的報表儀表盤將報表內(nèi)置到你的基于SharePoint的網(wǎng)絡(luò)解決方案。

      五、總結(jié)

      SQL Server 2008報表服務提供了一個全面的企業(yè)報表解決方案,這個解決方案為成千上萬的用戶提供報表,在他們需要的時候和需要的地方。這些報表可以將在企業(yè)中存在的多個不同數(shù)據(jù)源的數(shù)據(jù)放在一起,并以豐富的渲染格式將這些報表發(fā)送給企業(yè)內(nèi)外的用戶。

      分享:解答使用SQL Server數(shù)據(jù)庫查詢累計值的方法
      有這樣一個要求,它要創(chuàng)建一個SQL Server查詢,其中包括基于事件時刻的累計值。典型的例子就是一個銀行賬戶,因為你每一次都是在不同的時間去存錢和取錢。對任意一個賬戶來說,在某個

      來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時間:2009-09-18
      相關(guān)Mssql數(shù)據(jù)庫教程