SQL Pass – Seattle 2009 – Day 4
06 November 09 03:51 PM | Steve Carroll | 0 Comments   

Keynote:  Wow… I feel smarter now.  David Dewitt, a Microsoft Technical Fellow who works in the Data and Storage Platform Division, presented this morning all I can say is WOW.  If I had professors in college that could speak half as well as David, I would have a couple of PhD’s at this point.  His presentation focused on how to change the way database engines store data based on research he and his students have performed in analyzing bottlenecks of today’s hardware.  He highlighted the bottleneck in today’s architecture is really focused on physical disk IO and how changing the paradigm of how we store data can significantly improve the read performance in data warehouse scenarios.  He further predicted that the database market may segment between OLTP based systems and warehouse / DSS systems.  By the end of the presentation, I was wondering if I should head back to school…

SQLCat  / SQL Server Consolidation and Virtualization Best Practices:  This is a sweet spot area for me as I’ve done plenty of work in this arena.  In fact, I chose to go to this presentation because I had passed one of my white papers to the team that was presenting.  It was interesting to see how the work I had done in analyzing the performance implications of virtualizing SQL Server in Hyper-V had been taken and expanded upon.  My key take away, work very closely with your hardware vendors to ensure you are purchasing hardware that can be fully exploited by Hyper-V.

Advanced Nested Sets model in SQL Server:  I have always enjoyed the mental exercise of reading Joe Celko’s books so the opportunity to hear him speak was an opportunity I couldn’t pass up.  I had seen his work on tree navigation and always dismissed it as a clunky way to manage trees, but after hearing him explain the methodology it made much more sense than I had ever given it credit for.  I think I may need to go back and review some of his other books and see what other design patterns I need to revisit.  I really enjoyed hearing him speak and again, you can easily pick out the people who have experience teaching and speaking at the collegiate level from the rest of us engineers.

Using Policy Based Management to Manage your Environment:  I know… policies are made to be broken.  I wanted to review this class to make sure that I’ve got a strong understanding of policy based management.  I really like the notion of having a set of policies in place that will prevent “rogue” dba’s (or developers who read to many articles) from changing settings that I’ve specified for good reason.  Policy based management allows me to hand over control of a machine and still rest easy knowing that the configuration will not drift from where I expect it should be.  This is really important as you start to manage multiple environments such as a development / test / production solution.  A consistent set of policies will ensure that all users of the system have consistency as they move between environments.  While defining a complete policy solution can be a daunting task, the recommendation was made in the class to build one or two policies a week and slowly chip away at the configuration drift.  Once you have a baseline that you are satisfied with, policies can be treated as normal configuration items that need to be deployed as a part of any change to the system.

Sizing SQL Servers for unknown Workload:  Ah… the final session of the main conference.  This topic helps bring real engineering design to what has become a “seat of the pants” sizing exercise.  The presentation focused on taking a small “test” workload, and profiling its results.  The key is to ensure you have a representative sample of work from the application being profiled.  From there, he presented a series of scripts that analyze the collected profile trace and develops a breakdown of the workload by inserts, deletes, selects and selects with joins.  This information can then be funneled into SQLStress and then help predict the expected performance on the targeted hardware.  An interesting approach to a very complex problem.

SQL Pass – Seattle 2009 – Day 3
05 November 09 09:12 PM | Steve Carroll | 0 Comments   

Bright and early this AM.

I couldn’t sleep this morning and found myself up and awake at some crazy hour of the dark.  Not wanting to force sleep when I’ll be going home to the east coast soon enough,  I decided to take a walk and went down to Pike St. Market before the rest of Seattle woke up.

Really neat place to see when no-one is there.

DSC_0600

 DSC_0603

Keynote: This Morning’s keynote presentation was from Tom Casey who is the GM of BI for Microsoft. His presentation focused on the improvements that SQL Server 2008 R2, in concert with SharePoint 2010, and Office 2010 will bring to the “power user” of the office.  The key of the presentation was focusing on how to enable the "power user” to gain access to the appropriate data and mash it together with disparate data sources to allow for new insight and business agility.  Overall, I’m very impressed with the next release and think I’m going to start playing with it as soon as possible to see how my customers can leverage this impressive stack we’re releasing.

Advanced Policy Based Management for the Enterprise:  For those people who know me, my mantra is the ability to control the configuration of an environment is critical to the overall health and stability of the solution.  Policy based management has delivered a solution to many DBA’s custom scripts and manual checks to ensure the environment is configured appropriately.  This session demonstrated how to configure policy based management for SQL 2008 and techniques that can be leveraged for down level systems.  The presentation also discussed a solution called the Enterprise Policy Management Framework that offers a neat reporting solution built around the policy management engine.  It can be found at http://epmframework.codeplex.com/.

Scaling Online Transaction Processing Applications:  As always the ability of any OLTP system to scale is dependent upon the code being run.  This discussion focused on key areas to focus optimization when looking at scale out.  The funniest part of the entire presentation was how little was actually focused around optimizing based on hardware configuration.  The presentation focused heavily around how to optimize code and utilize the engine in the most efficient manner possible.  The end of the presentation focused on how to optimize hardware to efficiently scale up a system.

Introduction to PerformancePoint Services:  This was a session that focused on the ease of creating dashboards / kpi’s within the new PerformancePoint / SharePoint 2010 environment.  Overall, not a very deep session, but really highlights how much I wan to start playing with this capability.  Maybe I can set something up at home for the finances?  Could this replace my home version of MS Money now that that is going away?

The Accidental Leader:  Final session of the day was something I figured I’d stretch with a little bit.  I’ve traditionally been eager to lead, just not as a “manager”.  This session was geared at people who like me have stepped forward into a leadership position without the “formal” training.  While I didn’t necessarily agree with everything that was presented in the session, it did give me some areas to reflect upon and potential areas for growth. 

Now I might say, the best part of the day was a post session held across the street from the convention center at Gameworks where we had drinks, a light dinner and free video games.   In actuality, I found the days sessions to be very enjoyable so it was really like icing on the cake.

SQL Pass – Seattle 2009 – Day 2
04 November 09 05:35 PM | Steve Carroll | 0 Comments   

OK… I’ve started to follow up on my promise  to document my experiences here at SQL Pass.  So on for my breakdown of my day 2.

Keynote:  Attended the keynote presentations from Bob Muglia and Ted Kummert.  Bob brought a great history lesson to the “youngsters" in attendance by reviewing the roots of SQL Server.  A history lesson can always help show how far we’ve come in the past 20 years and where his vision of the product is as we move forward.  (Scary to think I’ve been working in SQL Server since 6.5 in 1998)

Azure looks very promising moving forward but I think there are serious challenges ahead to gain the trust of customers and allow the “cloud” to host their data.  I can really see a positive upside for “less sensitive” data, but it will be very interesting to see how the masses leverage this new paradigm.  The most amazing component of Bob’s presentation was the demo of a machine running SQL Server 2008 R2 on Windows Server 2008 R2 Datacenter running 192 cores… need I really say more?

Ted came out and then presented some of the new features of SQL Server 2008 R2 and all I can say is WOW.  I think the most interesting component I caught wind of was StreamInsight.  This is an engine that will be shipping with R2 that can be used to monitor real-time data and perform actions against events.  As an “addon” to SQL Server, this is an amazing piece of functionality and I’m going to need to investigate how I can leverage this moving forward.  Think of the ability to trigger an event to fire when say the price of electricity changes…  This engine, would allow a system to “listen” to a data stream (not necessarily even one in SQL Server) and perform some action.

Leveraging PSSDiag / SQLDiag to troubleshoot performance issues:  As always, its good to dust off the troubleshooting skills and see what is out there.  I entered this presentation thinking I was a decent troubleshooter, and found a couple really cool tools to help with my troubleshooting process. 

If you have ever had to deal with PSS (Product Support Services) you know these guys know their stuff.  Well fortunately they have published many of the key tools and this presentation went over them.  The presentation focused on processing the volumes of data generated via the SQLDiag tools.  The cool part is these tools are the tools that PSS uses to help diagnose the most difficult problems.  Key things that I took away from this presentation were the “Performance Analysis of Logs (PAL)” and the SQL Nexus tools.

Upgrade to SQL Server 2008 Database Mirroring (as fast as you can):  Mirroring is interesting as a fault tolerance solution as it allows for some “easy” to implement solutions as compared to clustering.  What was interesting in this presentation were demonstrations showing the performance gains that have been squeezed from the mirroring solution in 2008.  The SQL team did a great job analyzing the pain points of mirroring in 2005 and found that by compressing the logs as they get sent across the wire was able to squeeze an incredible performance gain.  OK… Skeptic, I get it… he showed numbers of a system built on SQL 2005 and then rebuilt in the exact same configuration but substituting SQL 2008.  He showed documentation that shows more than a 40% increase in throughput on the sender side and almost  50% on the receiver side.  My skeptical side still was shining through and I wondered what the CPU performance hit was going to be now that compression was in play.  CPU took about a 10% hit, but I had to remember that the system was also now pushing a significantly greater quantity of data.  Overall, it gave many in the room a very compelling reason to upgrade to SQL 2008.

Business Intelligence in SharePoint 2010:  I fully admit that SharePoint is not my strongest topic, but I’m always compelled to see the latest and greatest products.  In addition, I was interested in seeing how Performance Point was going to be integrated with SharePoint.  I’m a believer.  I fully believe that there is a fundamental shift underway in how people will interact with business data.  Could this mean I won’t be writing reports in the future?  My guess is no, but I’ll at least have a cool interface when this ships!

Designing and Building Private SQL Server Clouds:  Ah the cloud.  A pair from MaximumASP.com came and discussed how they have moved towards creating a “private” SQL Server cloud.  Now this is a product that is sold to consumers, but really they approach the “cloud” as I see it, a service.  Sometimes, the “Cloud” reminds me of service oriented architecture, but who am I….  Anyway, the presentation focused on how they have gone, and virtualized SQL Server.  The interesting thing I gleaned from this session was a little bit of trickery.  To facilitate easy movement of databases across different hosts, they assign a unique DNS name to each database.  Interesting way to allow for an abstraction layer making connection string problems a thing of the past.

I spent the rest of the evening walking around the show floor talking with vendors.  Always interesting to see what is out there. 

SQL Pass – Seattle 2009 – Day 1
03 November 09 04:24 PM | Steve Carroll | 0 Comments   

Well…

I realize that it has been a little while since I’ve blogged.  Apologies for the delay, but I’ve been slightly distracted at work.  Since I’ve last posted, I’ve spent a great deal of time working in SQL 2008 and have had the opportunity to work on some interesting challenges.

Additionally, I’ve had the opportunity to work on a couple of whitepapers.  Sorry folks, both are available internally only.  I the first I worked was specific to recommendations on virtualizing SQL Server within Hyper-V.  The second dealt with guidance surrounding consolidation of SQL Servers.  Both were very interesting projects which introduced me to colleagues from around the globe who all shared the same passion I have for database engineering.

Which brings me to SQL Pass.

This is is a great opportunity to unwind a little bit, and re-spark my interest in areas I’ve not had the opportunity to work in recently.

I’m planning on doing a daily breakdown of my attendance so you can see where my interest are lying these days.

I attended the pre-conference seminar on Monday 11/2.   This was a full day session taught by Brian Knight from Pragmaticworks.com.  The title of the session was Building a Microsoft Data Warehousing Platform.  This was a complete look at a full implementation of a BI solution from raw source data in the OLTP system, import into the warehouse via SSIS, cube generation in SSAS and finally report generation via SSRS.

We were apparently a “good” class for Brian and at the end we spent a little bit of time looking at the mining models.  I know this is an area that we could spend days on alone, but I was glad to see that we were able to expose mining models to those who may not have seen these before.

Even though I’ve spent a fair amount of time building cubes and building warehouses, I’m amazed at how the Microsoft products have evolved and really simplified the way I do things.  I started working ETL projects back with DTS and got really turned off because of the lack of flexibility.

I think it’s time for me to re-visit some of my existing practices and see how the new SSIS features can be leveraged to perform my ETL faster and more reliably.

Filed under:
SQL Server 2005 SP3 - Shipped
18 December 08 07:10 AM | Steve Carroll | 0 Comments   

After much waiting and grumbling from the SQL Server community, the much anticipated service pack 3 for SQL Server 2005 shipped on 12/15/08.  Finally we have a single avenue to apply all of our rollup packages that is fully regression tested. 

 I've been running the beta patch for quite some time on my personal stuff and the patch is really solid.  I've had no unusual activity / hiccups in using it and things just keep running along without issues.  You can read my original post regarding SP3 here.

You can find the download for the service pack at http://www.microsoft.com/downloads/details.aspx?FamilyID=ae7387c3-348c-4faa-8ae5-949fdfbe59c4&displaylang=en

Over the holidays is a great time to patch as most of the users we deal with are off on long holidays.  Get to testing ASAP and apply today!

SQL Server 2008 Upgrade Information
10 December 08 09:06 AM | Steve Carroll | 0 Comments   

I came across a fantastic piece of information for those who are looking to upgrade their existing SQL Server 2000 or 2005 instances to SQL Server 2008.  I know from past experience that it is no fun flying into this type of upgrade blind so this is a must read before jumping into the upgrade analysis. 

All of the good juicy details about the upgrade process are documented with great detail in the SQL Server 2008 Upgrade Technical Reference Guide.  This is no light read, it has an amazing amount of detail, but the nice part is the index and table of contents allow for easy navigation based on your particular upgrade scenario.

In addition, I found that the MSDN site had the document online in case you're not sitting with the doc in front of you.  It can be found here

 

Security Guidance for SQL Server
05 December 08 08:48 AM | Steve Carroll | 0 Comments   

In my eager attempt yesterday to post my findings on SQL Server 2008 great new security features (read more here) I neglected to provide some valuable security information I have accumulated over the last couple of years for the other editions of SQL Server.  

Here is my list of resources I turn to when working on securing SQL Server for a customer:

 

Finally to check my work, I've always turned to the Best practice analyzers

 

Technorati Tags: ,
Security Features in SQL Server 2008
04 December 08 11:30 AM | Steve Carroll | 0 Comments   

As most DBA's are aware, applications sometimes store sensitive information.  This may be Social Security numbers, credit card information, salary information... and data owners have a concern that prying eyes may be reviewing this sensitive data without cause.  While performing a little research on this topic, I came across two new features of SQL Server 2008 that absolutely blew me away, column level encryption and native auditing.  OK, so the concept of these features are nothing new, but the implementation knocked my socks off. 

I'll start with column level encryption.  Encryption has been around for a while and the story has continued to improve.  Encrypted File Systems (EFS) and BitLocker we are able to secure our data while at rest and ensure that even if someone boots the machine with an alternative file system, mounts the disk, and attempts to read the data, it is protected.  These are very important and great features, but what about the person who has access to the database?  DBA's traditionally have had access to review any data stored within the system.  To protect from this type of problem, and others who have the ability to select data, SQL Server 2008 has introduced column level encryption.

Here is the neat part.  As a DBA, if I query the data and the table I'm querying has an encrypted column, and I don't provide the key to decode it, all I will see is the encrypted text.  Now there are some parts that will be required to make this work, mostly on the application side, where the key will need to be passed to the database to allow for decoding the data.  The snag is,  encrypted columns cannot be indexed, or full text searched, but honestly, doesn't that make sense?  My experiments with column level encryption saw minimal performance impacts, providing I was not using the encrypted field in a where clause.  More information on how to encrypt a column of data in SQL 2008 can be found at http://msdn.microsoft.com/en-us/library/ms179331.aspx.

Well encryption is fantastic, protect my data from prying eyes, blah blah blah, but really, when an auditor comes to you and asks who has touched this data, you'll be left holding the bag.  Enter SQL Server Audit.  This feature allows for very granular auditing of not only changes made to the database and schema, but to individual objects within the database.  In previous versions, you could only audit insert, update, or delete statements against a particular table and that was with the use of triggers.  With a little more work and a rock solid security policy, you could cobble together a solution to audit data retrieval via stored procedures, but it would still not audit the sysadmin who directly queried the tables.  Using Database-Level Audit actions, an audit can be configured to audit Select, Insert, Update, Delete, Execute, Receive, and References on a particular table, thereby making sure whoever did anything with the data was known about.  All of the different objects that are eligible for audit can be found at http://msdn.microsoft.com/en-us/library/cc280663.aspx

This is only a quick review of two of the latest features available in SQL Server 2008, it is by no means an exhaustive list of the new security features.  A good reference to start reading about these new features can be found in the SQL Server 2008 Compliance Guide available at http://www.microsoft.com/downloads/details.aspx?FamilyId=6E1021DD-65B9-41C2-8385-438028F5ACC2&displaylang=en.  As with all security planning, this is only a facet of a total security plan, but I feel a very important step forward towards making customer data more secure.

Technorati Tags: ,
SQL Server 2008 Features by Edition Breakdown
25 November 08 11:28 AM | Steve Carroll | 1 Comments   

I've been helping people with SQL Server for quite a while now, and I continually hunt for information regarding what features are available in which edition of SQL Server.  Well, SQL Server 2008 has improved in many ways, including new edition packages that will allow you to choose a solution that is going to meet your needs and stay within your budget.  To me, the even better part about SQL Server is how easy it is to move between editions.  For example, if I create a database for a customer on my Vista machine running SQL Server 2008 workgroup edition, I can easily detach the database, burn it to a CD and move it to a customers Enterprise edition without any headaches.

To keep everyone from searching I've included the link to find it online:  http://msdn.microsoft.com/en-us/library/cc645993.aspx.  Personally, this is much easier to navigate and find what you need / get in each edition as compared to the listing created for SQL Server 2005 (http://msdn.microsoft.com/en-us/library/ms144275(SQL.90).aspx) .  As before, you have a great selection of 32 or 64 bit installs, but remember, if at all possible, in your production environment, go 64 bit if possible.

Technorati Tags:
Filed under:
Report Builder Gotcha'
18 November 08 03:17 PM | Steve Carroll | 0 Comments   

Using SQL Server 2005 sp3, running on 32bit Vista with sp1.  I'm creating report models using Business Intelligence Development Studio and as I go to edit an expression I find that I get a message "Access to the path 'C:\Windows\system32\config' is denied."

So, I try the next logical thing and close BIDS, re-open with admin privileges (yes, like a good boy I'm still running with UAC enabled) try to edit the expression again and get the same thing.

Looking at the permissions on the folder in question, I find that my account is granted Read & Execute on the folder so I do a little more digging.

After doing a little digging on the Connect website (http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=334796) I find that adding "%programfiles%\Microsoft Visual Studio 8\Common7\IDE" to the Start In path of the shortcut for BIDS resolves the problem.

I find just to make my day a little easier, I tend to run BIDS elevated just to make sure when I go to deploy my reports, things go according to plan.

Best Practice Guidance
17 November 08 01:15 PM | Steve Carroll | 0 Comments   

Ok... more often than not, I'm asked about best practices for SQL Server.  I figured I'd share my best practices bookmarks in no particular order to hopefully give you a new resource to find these.  I'd love to hear from you on what you use and what you find useful in this area.

On a related note... Don't forget the Microsoft Best Practices Analyzer http://www.microsoft.com/downloads/details.aspx?FamilyId=DA0531E4-E94C-4991-82FA-F0E3FBD05E63&displaylang=en.  This handy tool can review your work and point out shortcomings and compatibility issues while you're developing, rather than after you've released.

Now for my soapbox speech...  As always, rules are made to be broken.  On more than one occasion, I have had to write some code that broke one or more of these best practices.  The key is  that it was done for a specific reason, the risks were reviewed, and more than anything else, the code was tested thoroughly. 

SQL Server 2005 SP3
13 November 08 11:04 AM | Steve Carroll | 1 Comments   

Patch time for SQL Server... Well almost.

SP3 for SQL Server 2005 has been in CTP for a while now (10/27/08) and all is appearing to be really good.
I finally got around to installing the beta patch the other night on my home servers and experienced no issues at all.

So... what is this going to give us?  Lets crack open the What's New section and dissect.

  • All cumulative updates (CU9) See related links below for a listing of bugs fixed in the cumulative updates since SP2 shipped.
  • Updates to DBCC CHECKDB, DBCC CHECKALLOC, DBCC CHECKTABLE, and DBCC CHECKFILEGROUP.  The default behavior is to now show ALL error messages, rather than just the first 200.  (Nice especially if your database is really screwed up...)
  • Notification Services update allows for the service to leverage either a SQL 2005 or a SQL 2008 back-end database.
  • Replication - Updated the sp_showpendingchanges procedure with a new parameter of @show_rows.  This will allow for the identification of pending changes in subscribers.  (Very cool if you're trying to troubleshoot nagging replication problems)
  • Reporting Services
    • Added the functionality to generate report models based on Teradata databases.  There are some special caveats with this so make sure to read up before jumping in.  This is also aligning quite nicely with the updated geospacial functionality within SQL 2008
    • Updates to the PDF rendering engine allowing support of ANSI characters.  This allows Unicode characters from Japanese, Korean, Traditional Chinese, Simplified Chinese, Cyrillic, Hebrew, and Arabic.  In addition, when possible the font will be embedded in the PDF to allow for machines without the fonts to render the characters correctly.
    • Optimization of the object model calls that SQL Server 2005 Reporting Services makes when running in SharePoint integrated mode.

As always, read the documentation BEFORE you apply the service pack.  Test in an offline (non-production) copy to make sure everything goes according to plan. And last but absolutely not least, backup your data before making ANY changes!

Official guidance right now is that SP3 is scheduled to ship Q4 of 2008.  How's that to brighten your day just before the holidays!

 

Happy patching!

 

Related Links

Changes in SQL Server 2008 Clustering
07 November 08 09:29 AM | Steve Carroll | 0 Comments   

First and most important thing to remember when working on designing a SQL Server cluster is it is entirely dependent upon the underlying base architecture that you choose to implement for the operating system.  Here, it really pays to do your homework as the newer versions of Windows Server have some AMAZING features that will change the way we have traditionally thought about clustering.

In my opinion, Windows Server 2008 changes the story that can be told surrounding clustering and disaster recovery.  For the first time, without the headache (licensing cost, training, additional complexities) of third party products you can create geographically separated clusters.  Well, whoop de do you say?  We could do this with previous versions. The big gotcha was, all nodes of the cluster  had to reside on the same subnet.  Just about every time I see geographically separated offices or data-centers, they each have their own sub-netting scheme. 

Now pair this with Hyper-V clustering.... whoa Nelly.  Game Changer!  Geographically separated Hyper-V clusters.  Talk about simplicity of administration, and powerful disaster recovery.  Oh yea, don't forget that we're also adding live migration (the ability to move a Hyper-V guest machine from one node to another without taking the guest offline) in Windows Server 2008 R2 (coming soon!).  My co-worker Dave Ziembicki's blog (http://blogs.technet.com/davidzi/) has a cool video of an actual live migration on an early release of R2 http://blogs.technet.com/davidzi/archive/2008/09/14/demos-of-live-migration-and-hyper-v-server.aspx.

Some additional cool changes in Windows Server 2008 is the ability to use IPSEC between not only clients and the clusters, but between the cluster nodes.  This is a major step forward for cluster security.  My other personal favorite is not requiring NetBIOS and WINS anymore... clusters can support IPv6 and DNS rather than the ancient WINS subsystem.  My days will suddenly be more productive as I won't have to troubleshoot nasty WINS problems anymore!

Anyway, I think you understand that SQL server's clustering is significantly dependent on the architecture that is chosen for the host operating system.  I hope this came across as passionate about the changes Windows Server 2008 brings to the table and not like a bad Saturday night infomercial, these changes are really amazing.

Onto what I really intended to write about today... SQL Clustering.

Here's the bulleted list:

  • SQL Server 2008 clustering was re-aligned to follow the Windows Server 2008 paradigm this allows:
    • Up to 16-node failover cluster
    • IPv6 and DCHP support
    • Removal of Domain Groups by creation of the Service SID
    • Heterogeneous hardware and ISCSI support (no more HCL list)
    • Cluster validation tool includes SQL Server's cluster health
  • Rolling Upgrades
  • No remote execution on cluster nodes

To me personally, this is the biggest shift everyone will have to get used to who has created a SQL Server cluster in previous versions.  In previous versions of SQL Server, when the cluster was being created, as long as all nodes of the cluster were visible to the primary node at the time of installation, the cluster was installed on all nodes.  Going forward, each node in the cluster will need to be attended to to join it into the cluster.  Some may take this as a negative, but really, it was a by-product of the increased security posture taken in Windows Server 2008. 

To conclude, SQL Server clustering is a great option for ensuring your data is highly available.  With the changes made in Windows Server 2008, I think the disaster recovery story got significantly better.  Remember, before setting up any HA or DR solution, look at the problem you are trying to solve to ensure you are providing the right technological solution. 

Related Links:

Overview of Failover Clustering in Windows Server 2008

Features Supported by the Editions of SQL Server 2008

 

Embrace the use of Conditional Formatting
04 November 08 11:31 AM | Steve Carroll | 0 Comments   

One of the most underused functions I have found in Reporting Services is the use of conditional formatting.

Lets face it, in today's Ridilin influenced ADD society, we need to draw attention to significant events.  Lets face it, Outlook, pops up alerts for calendars, new messages, tasks, the phone rings, pagers, bosses.... you get the idea, people are distracted.  When developing a report that is going to contain important information, the use of conditional formatting can help "direct" traffic to the important things.

Think KPI...

In any flavor of SSRS today, conditional formatting can be easily accomplished, but there a couple of important things to keep in mind.

  • Everyone may not view the report in the colors you expect them to.  Black and white printers, color blind, etc can cause havoc when thinking about formatting.
  • Follow the KISS (Keep It Stupid Simple) principle.  Smiley face good, Frown Bad.

I'm sure there are more considerations, forward additional items to me...

Anyway, down to business.  How do we perform conditional formatting. 

Decided how you want to draw attention to your item.  Consider using font changes (size or structure changes), graphical indicators (arrows, faces, etc), Color or shading (remember what I said earlier) to gain the report views attention.

You can get really creative with the native functions within reporting services, such as row or page numbering, execution time, but for simplicity sake lets keep things simple.  In my example I'm going to change the font to bold for each value in the row if that row is from PA. 

I'm going to assume you already have a Matrix of data on your report.  Click on a field in the row that has the fields displayed.  From there you will see the row and column headings appear in the designer.

Select the entire row then in the properties pane, expand the Font section.

Click the drop down for Font Weight and select the top element <Expression>

Here is where the magic happens, replace the existing text with a customized function that performs the highlighting you want.   In my case, =iif(fields!ows_State.Value="PA", "Bold", "Normal")

When you preview the report, you should see items matching the expression we just created highlighted in bold.

Hopefully you will find this technique useful and you begin creating reports that allow your users to quickly find the important data.

Happy formatting!

Technorati Tags: ,
Funny use of Excel
29 October 08 12:43 PM | Steve Carroll | 0 Comments   
Technorati Tags:

Ok... I'm going to stretch a little bit on this one.

Everyone knows the power Excel brings to the table in terms of data processing and crunching numbers.

Someone pointed me to a funny web-site where the band AC/DC has created a music video using Excel. 

http://www.acdcrocks.com/excel/

Definitely a first for me. 

I did have to allow unsigned macro's to run to get it to work.  Before I did, I did review the macro code as each person downloading it should do.  :)

Now go take the workbook apart and see how they did it...  Rather clever if you ask me.

Filed under:
More Posts Next page »

Search

This Blog

Syndication

Page view tracker