Got Reports?Got Reports? Let me show you how in SCCM Santos Martinez @ConfigNinja Brett Bennett...

Preview:

Citation preview

Got Reports?Let me show you how in SCCM

Santos Martinez@ConfigNinjahttp://aka.ms/ConfigNinja

Brett Bennett@texasmcsehttp://aka.ms/breben

#MMSMOA

@ConfigNinja

Senior Premier Field Engineer at Microsoft (five years at MS)

co-author of Mastering series

11 Years of Experience and Fourth Degree Black Belt

5 SQL MVP

2 ConfigMgr MVP

Shihan Sensei TaiFu Shoi Karate-Do (Ninja)

Santos Martinez

#MMSMOA

@texasmcse

Senior Premier Field Engineer at Microsoft (10 years at

MS)

co-author of Mastering series

Have worked with SMS/SCCM

in various capacities since

SMS 1.0 Beta

Brett Bennett

We are giving away two copies during this session

Get your book signed!

ground·work [ˈgroundˌwərk]NOUN : : “preliminary or basic work” "an SCCM admin should ensure that he/she has completed the groundwork before writing awesome reports”

SQL Reporting Services

The CM2012 Reporting Services Point role uses SQL Reporting Services (SRS)SRS is part of Microsoft SQL ServerSRS has many benefits:• SRS used in many products• Utilizes standardized query language (T-SQL)• SRS is scalable, features high performance• Your SQL DBA’s probably already use SRS and understand it• Reports can have subscriptions & can be exported to a variety of file formats

SQL Reporting Services (continued)

A CM2012 hierarchy can have multiple reporting services pointReports are not replicated to other sites in the hierarchyReports run against the local CM database

Optimizing SQL

Make sure SQL server is configured properly and operating at peak performanceWatch for CM database fragmentation (scheduled reindex)Check SQL minimum and maximum memory configuration• Minimum: 8192MB• Maximum: 50% of total RAM for co-located SQL, 80% of total for

remote SQL

Add additional tempdb files (one per CPU, up to 8 files)Check CM database and transaction log autogrow settings

See our session “Talking Databases” at 3PM in Lakes D today for more info on CM database tuning and configuration

frame·work [ˈfrāmˌwərk]NOUN : : “an essential supporting structure of a building, vehicle, or object (or report!)”"an SCCM admin should ensure that he/she understands the SCCM report framework before writing awesome reports”

WQL vs T-SQL

WMI Query Language (or WQL) is a Microsoft implementation of a query language for the Common Information Model (CIM)WQL is used in CM2012

Transact-SQL (or T-SQL) is a Microsoft extension to the Standard Query Language originally developed by IBMT-SQL is used in SQL server

They are both SQL queries so the commands are interchangeable, right?

WQL vs T-SQL (continued)

Scenario: You created a query in CM2012 that you want to use as the basis of a new report. How?

Run the query in CM2012 consoleUse the SMS Provider log (smsprov.log) to see the translation from WQL to T-SQLTest the T-SQL query in Query Analyzer in SQL Management StudioUse the T-SQL query in the dataset in Report Builder

WQL vs T-SQLWQL

select SMS_R_System.Name, SMS_R_System.OperatingSystemNameandVersion from SMS_R_System where SMS_R_System.OperatingSystemNameandVersion like "%Windows 10%"

T-SQL

select all SMS_R_System.Name0,SMS_R_System.Operating_System_Name_and0 from vSMS_R_System AS SMS_R_System where SMS_R_System.Operating_System_Name_and0 like N'%Windows 10%'

Tables vs Views

SQL tables are used to store dataSQL views are virtual tables, optimized for accessing data via queries, reportsAlways use views* when creating queries for reports, never tables•Microsoft does not support CM reports based on tables•Database tables may be renamed during upgrades, views are typically not

* (or RBAC functions, more on that soon)

What about RBAC?

Role-Based Access Control (RBAC) is key feature in CM2012RBAC uses security role, scope and collections to determine which CM objects an admin can accessCM2012 RTM introduced RBAC in the consoleCM2012 R2 introduced RBAC for reportsAll native reports in CM2012 R2 are RBAC-enabled

What about RBAC? (continued)

When creating reports, you will need to decide:Is report security a concern at your company?

DemoRBAC vs non-RBAC Reports

User: Joe Admin

• Joe’s security Role – Operations Administrator

• Joe’s Scope – Default

• Joe’s Collections – Windows 8

What about RBAC? (continued)

When creating reports, you will need to decide:Is report security a concern at your company?

If YES, use RBAC functions when creating queries for reports (example: fn_rbac_gs_operating_system)

If NO, use SQL views when creating queries for reports (example: v_gs_operating_system)

What about RBAC? (continued)

Use View Dependencies in SQL Server Management Studio (SSMS) to analyze the relationship between a function and a view

Creating the Query

Query tools• Query tool in SQL Server Management Studio (SSMS)• Query Designer in SSMS • Notepad (if you are a query expert ) and then copy/paste to Report Builder• FlySpeed SQL Queryhttp://www.activedbsoft.com/overview-querytool.html

Verify your query is optimized, efficient• SET STATISTICS IO ON• SET STATISTICS TIME ON

Use these tools that are included in the query tool in SSMS for additional insight:• Analyze query in Database Tuning Advisor• Include Actual Execution Plan• Include Client Statistics

SQL Sentry Plan Explorer is a third-party tool for viewing SQL performance (sqlsentry.com)

Report Creation Tools

What tools can I use to create reports?• Report Builder 3.0 • Business Intelligence Development Studio (BIDS)• SQL Server Data Tools

Which one should I use?• Report Builder 3.0 is available as a standalone app and ClickOnce• Report Builder more intuitive, may be easier to understand and use

Now that you understand the groundwork and the framework we can start the real work of creating reports in CM2012

real work [ˈrē(ə)l] [wərk]ADJECTIVE (and a NOUN) : : “this is where heavy lifting may be involved”"an SCCM admin should ensure that everything else is in place before starting the real work of creating awesome reports”

Microsoft Confidential

“I need you to create a report that shows….”

23

1. Does the data exist in the database? If not, can it/should it be added?

“Is it possible to get a list of all processes on clients?” “Uhm, yes, but….”

2. Does one of the 400+ reports included in CM2012 meet the requirement?

3. Is one of the included reports close and can be copied and modified to meet the requirement?

4.BING search for a report that someone else (product team, MVP, myITforum.com member, etc) created and shared. Likely you’ll find something close!

5.Create it!

Identify the views/RBAC functions that contain the data you will need

If you need help with the query, buy your SQL DBA a cup of coffee!

DemoOverview of report structure

Creating the Report

Identify the views/functions that contain the data you need and perfect the query (queries) firstDon’t expect a report to make a ‘bad’ query betterUse parameters to make the report more user friendlyUse the included expressions for page count, date, report name, etcAdd images, color schemes, change fonts so it matches company branding

Spend 90% of your time here

Spend the rest here

T-SQL Query Basics

The available views for CM2012 are documented on TechNet:

https://technet.microsoft.com/en-us/library/dn581978.aspx

A SQL query a colleague documented:http://blogs.technet.com/b/configmgr_geek_speak/archive/2013/04/05/configuration-manager-2012-sp1-all-inclusive-sql-database-views-listing.aspx

Most of the RBAC function/view names are fairly self-explanatory

Creating T-SQL QueriesQ1

SELECT * FROM V_GS_OPERATING_SYSTEM

Q2

SELECT CAPTION0 FROM V_GS_OPERATING_SYSTEM

Q3

SELECT CAPTION0 AS OS FROM V_GS_OPERATING_SYSTEM

Q4

SELECT CAPTION0 AS OS FROM V_GS_OPERATING_SYSTEM ORDER BY OS

Q5

SELECT CAPTION0 FROM V_GS_OPERATING_SYSTEM WHERE CAPTION0 LIKE '%server%'

That’s great, but what about the computer name?!

Creating T-SQL QueriesQ6

SELECT * FROM V_R_SYSTEM

Q7

SELECT * FROM V_GS_OPERATING_SYSTEM

Q8

SELECT v_R_System.Name0, v_GS_OPERATING_SYSTEM.Caption0

FROM v_R_System INNER JOIN v_GS_OPERATING_SYSTEM ON v_R_System.ResourceID = v_GS_OPERATING_SYSTEM.ResourceID

DemoSome SQL query basics

DemoBasic ReportList computer name with Installed Apps

DemoBasic Report with parametersList computer name with Installed Apps

DemoReport Manager

Evaluations: Please provide session feedback by clicking the EVAL button in the scheduler app (also download slides). One lucky winner will receive a free ticket to the next MMS!Session Title:

Discuss…

Ask your questions-real world answers!Plenty of time to engage, share knowledge.

SPO

NSO

RS

Recommended