Monthly Archives: April 2014

Forcing Innovation

Yes you read it right. Today we are discussing the approach I have seen in some companies where they try to force innovation. As you will soon realize I am against it. The thing about innovation is that you shouldn’t try too hard. The best innovations or discoveries happen at the most unexpected times and often as a result of being prepared to recognize an opportunity rather than trying to create it. Companies today are forced to constantly come up with the next big thing or perish. An environment that in itself is not conducive to innovation. It’s like pointing a gun at someone and asking them to laugh genuinely.

Having been part of an exercise intended to bolster innovation in my previous company I understand the reasoning behind the daylong session on how to innovate but reject the assumption that it will suddenly have employees going “Eureka”. Some of the greatest innovators are actually creatures of habit. Their brains just wouldn’t stop thinking. Naturally while Einstein fits the above definition he wouldn’t be called an innovator (changing the field entirely and leaving generations of physicists after, to comprehend your genius requires a whole new word) but here are a few notable others Gauss, Newton,Edison, Hooke, Tesla oh and of course Da Vinci to name a few.

Innovation is almost always mentioned in the same breath as “Think outside the box”. One thing you will see in the above list is that each of them had a primary field of study however still contributed to almost every branch of science as well. By specializing in a particular field you have already defined the box whether you like it or not. When I started my company I tried to create an environment that was conducive to innovation, enough freedom to RnD in fact I encouraged my employees to take some time off to do something that they felt was a promising idea. The result: – Every idea was a variation of something already out there. I realized a few important things after that

  • You can’t force people to innovate. Be it attending workshops or the more subtle workspace freedom? A creative person being forced into it probably won’t come up with anything useful.
  • It’s all in the mind. A person who never needed to be creative isn’t going to become so just because you asked.
  • It requires diversity in personal experiences.

So what’s the answer? Kids.

Yes, experience is good for business. Experience makes for better workers who are good at their jobs. However it also restricts our ability to imagine without boundaries. Kids are not restricted by any of that, for them a spaceship can take off from earth and reach Mars in a day, for them it is possible to shoot lasers from your eyes now all you need to do is find a way to do it.

We need to encourage creativity at Home (not the schools). We need to be constantly challenged every day. The first few times we complain, the next few times we starting thinking of a solution, then we start looking for challenges. There is an interesting story about Torrance tests that you should read when you get the chance. So what do we do in my company now? Most days we twiddle our thumbs and some days we have a few sparks of genius.

 

Downloading the SQL 2014 product guide

Today we are going to do a quick post on where you can download the SQL 2104 product guide.

http://www.microsoft.com/en-in/download/details.aspx?id=39269

 

The above link takes you directly to the download file. Once downloaded you need to extract the zip file. You will notice the content is not as extensive as that for 2012 but it covers the common new features that MS has been pushing with SQL 2014.

We will be putting up our first technical review of the features this week. So stayed tuned.

SQL 2014 licensing

As with any installation of SQL server we start with the licensing of SQL Server 2014. Most DBAs are unaware of the implications of licensing costs on the overall project. But over the years these costs have been increasing more importantly the options have been decreasing as well. Like with SQL 2012 we still have Core and CaL based license. Core based License means you pay for the number of CPU cores installed on the hardware. This gets a little bit tricky when working with VM where you can even License individual VMs too. Normally Core based license is what customer in enterprise use because EE of SQL only support Core based license to begin with. Cal base license is where you buy one server licence for your installation (not instance) of SQL and 1 CAL per user or 1 device access license per device.

So why is licensing cost so important now? Well with the last few releases MS has made it very easy to consolidate servers and this has resulted in better hardware utilization. Naturally since you can get more for your buck with hardware it means the cost of the software that enables it will go up. In the grand scheme of things you still save money but it makes your wonder where SQL is headed.

Edition

Core

CAL

Enterprise

X

 

Standard

X

X

Business intelligence

 

X

 

Notice how BI edition can only be licenced with CAL since it typically has more users you need to plan carefully between going for BI and simply using Enterprise edition with core based model. Additionally there has been a big push from MS to offer customer who pick up Software Assurance much more than then those who do not. This translates to better mobility and VM support as well as more flexibility with future upgrades. Bottom line it’s better to get SA now.

So overall there is no major change compared to SQL 2012 licensing but keep in mind that you need to be a lot smarter about your topology now. Without Always ON availability groups in standard edition and not solid replacement for mirroring we are looking at Standard edition slowly becoming a non-viable option for most companies. It will provide basic features and help get the job done but frankly you’re getting less for more.

What options does this leave us then? Well naturally those who can afford it will continue to use Enterprise edition , those who are on the edge will virtualize big time and the rest will need to move to the cloud to reduce the overall impact.

By the way MS has provided cloud backups with SQL 2014 so that is definitely once option that could mitigate the TCO.

Read more here

At Enabled Business Solutions we are currently helping some of our client evaluate the right choice for them e.g. downgrading based on critical feature list, moving to the cloud or consolidation and Virtualizations on VMware or HyperV. Need more info click here

 

 

 

 

 

SQL 2014 Series

Starting today we are launching a new series on topics related to SQL Server 2014. Free videos and tutorials on key new features as well as some interesting changes compared to how we used to do things in previous versions. But first things first, what is actually new and features to look out for?

Memory-Optimized Tables: Entire tables in memory, speeds up data access by up to 30 times. Stay tuned for our benchmark on OLTP and DW systems under different workloads.

Backup and Restore Enhancements: – Backup to the cloud, already seeing a lot of demand of this option with SME looking to cut costs of data centre management. For those who need DR without the extra HW

Delayed Durability: We can’t wait to test this out. No more write Latency?

Columnstore Indexes: Something that should have been available since 2012, but glad they got it fixed. Now we can really start using CS indexes.

Buffer Pool Extension: Glorified version of ready boost? We’ll see. But if it is even half as good as it promises to be we could be ushering in the age no Hard disks very soon.

Resource Governor Enhancements for Physical IO Control: Might not sound like much but IO has always been one of the most critical aspects of server performance and the DBA should have been able to control it in RG a long time back.

 

The astute reader might notice that most of the key features are around performance improvement not surprising considering the huge jump in the amount of data being stored over the last 8 years. Sign of things to come?

 

 

More here: – http://msdn.microsoft.com/en-us/library/bb510411(v=sql.120).aspx

 

 

 

 

 

Whose money is it?

Recently I was faced with a challenge most people might face at least 1 or 2 in their life time. While in most cases the result is expected in this case it couldn’t follow the traditional approach for obvious reasons.

So what am I talking about? I was on my way to the bank a few weeks back and I found 1000/- Rs on the ground. Usually if it was a few 10’s of rupees I would have ignored it and moved on but considering that it was a significantly large amount I had to stop and pick it up? Some poor guy has probably just withdrawn the amount and lost it almost immediately. As soon as I picked it up I started facing my challenge? What to do with it?

Naturally who ever lost it might come back looking for it but how do I identify him? If he doesn’t come back what do I do?

As I stood there a guy walked up to me and claimed the money to be his, obviously my first instinct was to give it to him and get it over with but then realized that he probably saw me pick it up. So my first filter was to ask him the amount I had in my hand, he got it wrong. Naturally it is possible not to get the exact amount since some of it could be blown away in the wind but his amount should have been higher than I had in my hand. Next he got the condition of the notes wrong. Almost all the notes were used notes not crisp new notes. And lastly he got the denominations wrong.

I dismissed him and he left without a struggle that pretty much confirmed it for me. But I still am left with the money in my hand. I asked around and everybody said leave the money with them but that was also not acceptable since I couldn’t vouch for any of the people I talked to. I could go the police and hand it over but the person who lost it probably wouldn’t go to the police since the money wasn’t stolen and it was more hassle than the money was worth. So I left my card with different stores in the area.

A few days later I got a call for the money after asking the same questions the answers were valid. I figured I should test him out a bit more by asking him to come to my office and then dropping out at the last minute. He persisted and that left me thinking he must be the real owner. So I asked him to come over and when I met him I was convinced he was the guy mainly because he fit the profile of someone who would carry his money in a rolled bunch and was a working class guy. Someone with money would probably have assumed it lost and moved on. Can I say I found the right owner 100 % No, but I am 90% confident that I found the right guy.

Do you think I did the right thing?

This challenge posed some interesting questions on how we identify ownership on the internet which I will explore in my next blog.

 

 

 

 

 

SSRS Sorting data within a Report

Sometimes when we create reports we define the sort order of the data within the report itself. This allows the user to pick and choose data based on the sort order that make most sense when viewing the data. Notice how the second column ( which is the column order or position of the column within a table is not ordered within the report)

 

Let us begin by first making the column sorted in asc order

Right click the tablix control and select Tablix Properties. Go to the Sorting option on the left hand side menu and Press Add

In the text box “sort BY” enter the name of the column on which the sort order is determined. In the Drop down list for Order select A to Z for Asc order.

SSRS Reports not rendering beyond 90 seconds

Today I came across an interesting problem with SSRS and ASP.Net. I usually have all my reports optimized to run quickly, this includes creating snapshots revisiting indexes etc. However for one of my clients the data is huge and we were using OLTP systems so query response times were still not great especially when it came to reporting. I had deployed the reports and then exposed them via report viewer control on a web front end. All the reports expect one would run fine. The report that didn’t run fine showed the Message Loading report for 90 seconds and then the control remains by the report page is empty , no grids no message nothing. I checked the SSRS logs and couldn’t find anything. IIS logs also were difficult to read and didn’t give much help. Event viewer was also not showing any message about where the problem was.

Since the problem kept happening exactly after 90 seconds I knew this was a timeout issue. So the next logical step was to check the IIS timeout for connection as well as script Timeout. I also verified the ping time out and limits properties within the website.

With these values set I tried again and still no luck. The funny thing was that SSRS Reports opened directly within the Report manager URL worked fine. For this reason I thought SSRS was not the issue but since setting IIS timeouts didn’t make any difference I decides to follow the steps in the below link to try and set SSRS timeouts.

http://blogs.msdn.com/b/jgalla/archive/2006/10/11/session-timeout-during-execution.aspx

The above steps didn’t help either. After goggling different keywords to try and find anybody else who has faced the same issue. I came across the below link which talks about setting the script component AsyncPostbackTimeout within the script components of the webpage which renders the reportviewer control.

 

http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/544b5def-1b22-4e23-9472-da3120f09fca/

The above post is what finally helped me and basically what it means is that IIS timing out the script component and as a result the report viewer control is failing to render. Took me about 2 hours to find out the solution but was well worth it. Hope this helps you if you have a long running report.