From #23 to #403 – 8 years of SQL Saturday

“Many of us are more capable than some of us, but none of us is as capable as all of us.” Tom Wilson

SQL Saturday 403 marks 8 continues years of SQL Saturdays in Louisville – which I have had the pleasure of running. I have learnt many, many lessons during these 8 years – lessons on how to run an event on a budget and unpredictable funding, logistics around finding restaurants/caterers, what audience looks for,  what vendors look for, when is the right time and season for an event, who are the right speakers to pick, on and on. But the most important lesson among them all is one of team spirit. Good teams are self managing, where members enjoy what they do,thrive in each other’s company and do it for the love over anything else. I am fortunate to have been blessed with such a team to run our SQL Saturday.

A SQL Saturday team needs to have many skills – we need people who are good at marketing and selling the event to vendors and attendees, we need people who can order food/suggest restaurants/caterers etc, we need people who can do registration and structured work, and we need those invaluable hands who can do just about anything as needed. My team has been with me for 7 years – in the course of which we have lost and gained several people. I lost the person who did our marketing last year, which was one reason why our funding as well as attendance suffered. I was looking for someone with this talent to come on board – when I heard of John Morehouse moving to our town. I had heard of John’s passion for community and the great show they put up at Omaha sql Saturday and invited him onto our team immediately. Along with John we also had Chris Yates – who has been a twitter friend and community enthusiast for a while. Between John and Chris our marketing rocked the attendance and funding like nothing else before.  Some of the highlights of our event this year are as below –

1 We had 254 who registered – about 220 showed up. The registration is the highest to date.
2 Our funding was also highest to date and possibly the highest one has for events of our size.
3 Our signage as always was done very professionally by long time volunteer Deana Ritter. The flutter sign in  particular has become a cheerful landmark of our yearly events and one that is unfailingly appreciated by many people. Deana and her assistant volunteer Bill Murray get on the streets as early as 5 30 AM to put out signs near the highway for attendees coming in to the event.
4 Our sign ins and registration was ably handled by long time volunteer Karen Schuler. Karen is a cheerful presence for every attendee who walks in the door (directing those without speedpass to ‘table of shame’ :)). Speedpass was hugely successful this year with only around 25 people needing printouts at the venue.
5 Our lunch was catered by Mark’s Feed Store – it was hot bbq lunch and greatly appreciated by attendees. Volunteers James King and Bill Murray worked very hard to get arrangements in place to ensure smooth serving, no spillage or damage to carpet in the venue, as well as a cost effective arrangement to suit our budget.
6 All our swag was delivered to long time volunteer Dave Ingram, who carefully brought in every single package without a murmur (and there were many!!).
7 Our snacks, sodas, ice etc were ably taken care of by speaker cum volunteer Kenney Snell.
8 Our event cameraman was TJ Crivits – who has  captured the event in many memorable shots. Personally I see myself going through these when am old and still thinking of what fun it was doing all this. TJ also did a great job with getting the lunch leftovers carted away efficiently to a local soup kitchen.
9 Last but not the least is our volunteer cum speaker cum chapter lead Dave Fackler – whose many mailings helped immensely with publicity to the event. Dave also manned the table for PASS at the event.

During the 8 years of doing SQL Saturdays – we have had great events, good events and events which are kinda okay. We’ve had food deliveries that were missed, key volunteers who could not make it at the very last minute because of personal or work issues, venues that threatened to cancel on us because of weather (one day before, and yes that was our last and will be our last winter event, ever!) , vendors who backed out on sending funds..on and  on. This event was one that did not have any such issue , and was a complete, total success. I am proud and happy to close it out and look forward to event #9, and then soon, a whole decade of SQL Saturdays!!

Links related to our event:
1 Why we speak and volunteer for SQL Saturdays – by Dave Fackler.
2 SQL Sat 403 – Recap by Chris Yates
and one of the best geeky examples of using Powershell to tweet event info –
3 SQL Saturday Speaker Marketing with Powershell – by John Morehouse
 

 

 

 

 

 

 

 

Detours

detourWhen I was new to driving in the States, one of the signs that would make me end up with a panic attack was the ‘Detour’ sign. I grew up in a community that was largely pedestrian, and I developed my road sense mostly by walking. If I walk down a street – chances are pretty high that I will remember that street for some time. Many americans have the same kind of road sense with driving. I was not born here, I learnt to drive much later in life and did not have that. So, in the pre GPS days – whenever a sign appeared that said ‘Detour’ – I would have a panic attack. I did not know the alternate road and where it joined up with the one I was on. I did not know where it would take me and how I would find my way back to where I was supposed to go. But the detour signs did not stop appearing because I did not like them. I had to find a way to develop a better road sense – it would never be as evolved as the one I grew up with but I needed it for sure.

As far as career choices go – I had similar issue a couple of years ago. I had quit my stable DBA job which I had for 6 years and made a move to another position in a company that was being bought out. The writing was on the wall that many of us would be let go soon and I had to find something else quickly. In addition to that – I was in a serious car accident and suffering PTSD which was causing severe insomnia, amongst various other issues. I had no energy to get acclamatised to a completely new and stressful work environment. So I went with what my heart told me, picked up the phone and called a friend from the company I had left. He was not a SQL guy, he managed the windows team there – he had a spot open on his team, for someone who could do Systems Center operations manager, among other things. They had newly acquired SCOM and SCCM and were having a hard time finding experienced help. SCOM is a product closely married to SQL Server – I saw an opportunity to help, and I loved the people I was going to be working with. So I took the job, and worked it for a year and a half until I quit a week ago for another promising DBA position. There were many things I learnt during this career detour –
1 Most SQL folks I know suffer a sort of a paranoid attachment to their work – ‘I can only do SQL Server and nothing else’. Even the mention of Oracle or MySQL is intimidating and is met with ‘no no, not my area of interest and so on’. Some of the fear is valid – Oracle for example is not an easy product to learn and there is no point pretending you can just learn it as you go and get somewhere with it. But some of it is just resistance to change. There are many products married to SQL Server – like SCOM. Or SharePoint. There are many other database products that are relatively simple to learn – like MySQL. So it is important to look at our resistance to branching out into learning other stuff.

2 My good friend Brent Ozar often says that it takes upto 10,000 hours of dedicated learning to learn anything and get to expert level. I learnt from him not to have that expectation to begin with unless I had the luxury of that kind of time – it was important because setting goals too high and then failing was sort of a self sabotage too that was hindering my growth at many levels. I developed some skills with SCOM – by no means expert level but I learnt good scripting on vbscript and a basic level on Powershell. I also learnt a lot of things around monitoring – including the fact that generic monitoring tools can do certain things and we need deeper monitoring tools mostly for other things. Also to develop dashboards and metrics around mining a monitoring database – and how useful that can be to upper management if they are willing to exploit it.

3 I kept a constant eye though on my main area of expertise – SQL Server and database technologies. I kept up my learning with viewing courses on Pluralsight, PASS Summit recordings and attending sql Saturdays/user group meetings. I learnt after a certain period of time that becoming a SCOM expert was not something I really wanted to do and got back on track with SQL Server again.

By far the most valuable lesson I learnt though – was similar to the one I learnt on the road. Not to fear detours. They can and they will happen. To develop a ‘road sense’ of where I am, and where am going, and how my path will sync up to the one I was on. It has left me with renewed confidence in myself and my ability to handle life as it comes.

 

Finding most used alerts and monitors to override

I had a requirement from one of the teams that uses SCOM monitoring – the requirement was to change alerting level on scom alerts from critical to warning for all servers that were not on production for BizTalk management pack. Now there are several rules and monitors related to this management pack – or in general any one management pack – there is no quick and easy way to override all of them. To do so manually would be very cumbersome and time consuming. Instead – a better way to approach this would be to find rules and monitors that generate the most alerts and override them instead. This would create the override for most relevant rules and monitors – the others can be overridden as and when they happen. The query I used to find most used rules and monitors is as below. I wanted the BizTalk management pack – this can be substituted with any other as necessary.

 

Use OperationsManagerDW

SELECT

alt.AlertName,

COUNT(*) AS AlertRepeated

FROM Alert.vAlertResolutionState AS ars INNER JOIN

Alert.vAlertDetail AS adt ON ars.AlertGuid=adt.AlertGuid INNER JOIN

Alert.vAlert AS alt ON ars.AlertGuid=alt.AlertGuid INNER JOIN

vManagedEntity ON alt.ManagedEntityRowId=vManagedEntity.ManagedEntityRowId

WHERE

alt.AlertName like ‘%biztalk%’

GROUP BY alt.AlertName

ORDER BY count(*) desc

TSQL Tuesday 66 : Monitoring

This TSQL Tuesday post hosted by Cathrine Wilhelmson has to do with Monitoring.

During my many years as a DBA i have had a fair share of experience with monitoring tools – some of them as listed:

1 Spotlight for SQL Server – great tool for server level monitoring with very cool graphics. What i really liked about spotlight was that it was so very non-techie friendly – so whenever the director or VP chose to walk by and wants a peek into server health – all I needed to do was to pull up the screen and show him the dials whizzing around. On the flip side, spotlight did not help a whole lot with query tuning. It was also rather difficult to integrate with our ticketing system to generate tickets.

2 More recently, I have been working with Systems Center Operations Manager as our enterprise wide monitoring system. SCOM is a really complicated monitoring system to work with – but once you get familiar with it there is a lot it can do – in particular what I really liked was its ability to open tickets on its own within our ticketing system(with some customization of course), as well as close alerts on its own too when the alerting situation was resolved. SCOM calls for a dedicated admin  (which is part of my job), and a lot of tuning to get it down to where it only alerts on what you need without a whole lot of extra noise. SCOM is also NOT a tuning tool – it is only an alerting tool.

4 There are some situations that fall completely outside the realm of third party monitoring tools- for example, we need an alert whenever a user is added as a server role on some servers. We had to write a really simple script that would pull people who are on server roles, set it up as a job to email us every day in case something changed.

**Beginning of script – authored by Mala Mahadevan

SELECT role.name AS Name, member.name AS MemberName,
CASE WHEN (role.is_disabled) = 1 THEN ‘DISABLED’ WHEN (role.is_disabled) = 0 THEN ‘ENABLED’ END as     ‘Status’

INTO #temp_dbo
FROM sys.server_role_members

JOIN sys.server_principals AS role

ON sys.server_role_members.role_principal_id = role.principal_id

JOIN sys.server_principals AS member

ON sys.server_role_members.member_principal_id = member.principal_id AND

–filtering for logins that come from our domain
member.name LIKE ‘prod\%’

–Format email

SET @tableHTML =    N'<H1>Server Role members on Server A</H1>’ +

N'<table border=”1″>’ +

N'<tr><th>Name</th><th>Role</th><th>Status</th>’

+

CAST ((

SELECT  td = CAST(([Name]) AS nvarchar(100)),”,

td = CAST(([Membername]) AS nvarchar(100)),”,

td = CAST(([Status]) AS nvarchar(100)),”

FROM #temp_DBO

ORDER BY name

FOR XML PATH(‘tr’), TYPE) AS NVARCHAR(MAX) ) +    N'</table>’
SET @Results = isnull(@tableHTML, ”)

–Email the team on findings
EXEC msdb.dbo.sp_send_dbmail

@recipients =

‘mydbateam@mydba.com’,

@subject =

‘Server Roles on Server A’,    @importance = ‘Normal’,    @body =

@Results,    @body_format = ‘HTML’

 

DROP TABLE #temp_DBO

What it took to stump the optimizer

Sometime ago I was working with a Microsoft support technician on a ticket related to some database issues on SCOM. The technician wanted to run a stored procedure to clear out some of the backlog we were seeing with a batch job.

When he ran the procedure (via Query Analyser) – we encountered an error as below. Basically an error that is wee bit rare, the optimizer telling us that it is stumped and the query is too big for it to process. The technician moved on to other ways of resolving the issue as fixing this problem involved touching some procedures that came with the product and was beyond the scope of our call. But after we were done, I was intrigued to find out what caused the optimizer to give up.scomoptimiser

I went to Line 177 of the specified stored procedure and found a statement that looked pretty small on the outside:

DELETE dbo.[CategoryOverride]

FROM dbo.[CategoryOverride] CO

JOIN #BaseManagedEntitiesToPurge BMETP

ON CO.[InstanceContext] = BMETP.[BaseManagedEntityId]

The table CategoryOverride had about 300 rows..and  on checking what went into the temp table – it wasn’t all that large either, only around 100 rows. Looking at the estimated plan from the optimizer gave me nothing – a perfectly ordinary plan with an equijoin on a clustered index. So what was causing the problem?

I looked to see if the table CategoryOverride had any triggers on it. None. Then I went on to looking at keys. The table had one foreign key defined on it.

scomo1

I decided to script this key and see what it showed me.

ALTER TABLE [dbo].[CategoryOverride] WITH CHECK ADD CONSTRAINT [FK_CategoryOverride_ManagementPack] FOREIGN KEY([ManagementPackId])

REFERENCES [dbo].[ManagementPack] ([ManagementPackId])

ON DELETE CASCADE

GO

There was my culprit – an ON DELETE CASCADE. So many other tables is this touching? A quick look at the dependancies on this table showed me no less than 14. For one record to be deleted – there were dependancies on 14 tables. I picked one record on the main table and counted how many dependant records were there to clean up. It was about 6000. So the delete statement was far from a benign straightforward delete – it had a huge amount of data to clean up and the optimizer could not generate a plan across 14 tables some of them having more cascade deletes on them.

Moral of the story – never assume the simplicity of a statement based on looking at it, or what the query optimizer tells you. The truth may be much deeper. If I had the choice of fixing it I would remove the cascade delete and go on to cleaning up data step-by-step in each of the dependant tables.

TSQL Tuesday #61 – Giving back

This TSQL Tuesday is hosted by my friend Wayne Sheffield. The topic is on ‘giving back’..what do you think you can ‘give back’ to the sql community in the upcoming year?

When I was new to this country – I had a friend who was a psychotherapist by profession. Towards the holidays – when everyone took time off, went shopping, decorated homes and so on – she would be working double , sometimes triple shifts. She worked for herself, so nobody really made her do this. But it was the time when business boomed for her. More people were depressed and low towards the holidays causing more therapists to be in business. Now, I come from a country with a lot of poor people. Seeing more people depressed instead of happy during a festive season was news to me – but that is topic for another post. The point as she explained to me was that the need to give without adequate self nourishment made a lot of people feel very depleted and as a result, depressed and low. In some ways , our small community is also reflective of the bigger outside culture – we expect people to give more and more – volunteers need to do more, the people on PASS board need to do this and that, MVPs and friends who are doing well need to recommend jobs…on and on. What are we doing to ensure appreciation and self nourishment within our community?

I don’t mean prepping people up or tweeting about how much we love each other and so on , although those things are important. I mean things like looking out for someone who is out of work. If you find any opportunities that he/she may be interested – let them know. Put in a word of recommendation, if you can do it. Share your own stories, not just of successes, but of failures. Like the time when a technical interview was really hard and you knew in 10 minutes that you were a poor fit. Or the time when you wondered how having 500+ linkedin contacts is not leading to any successful job leads. Or when everyone is talking of the sqlserver job market booming and there is nothing remarkable happening in your neck-of-the-woods. We all have times like that. Sometimes, sharing those stories is the best thing we can do to help someone who is depleted. As I write this, I know of 4 people who are looking for work. They are all smart, hardworking, caring individuals who have given to community and are in need of self nourishment. My goal is to be there for them in whatever way I can. And for people like them, in the year to come.

User Group Funding: Twitter Chat summary

I was part of a very interesting chat on twitter on how to find funding for user groups and SQL Saturdays. The conversation was initiated by Brent Ozar with an RT of Andy Warren’s blog post stating that running chapters is a lot of hard work. It was followed up with an active discussion on funding and how to find more funding to support chapters, particularly smaller ones. Those who participated include – Brent Ozar, Grant Fritchey, Kendal Van Dyke and Andy Warren. Matt Velic and me added our thoughts also. Following are some interesting observations.

On funding for small groups:

Me: ‘Funding for small groups has become inconsistent after UGSS and Idera pulled out of consistently sponsoring.’
Kendal: ‘Ideally that’s where SQLSaturday activities can help fund the group for the year.’
Matt: ‘SQL Sat would have to charge a fair amount to fund for a whole year’.
Brent: ‘Charge $25 for SQLSaturday,still the deal of the century’.
Andy:’Hard to justify cost/effort/reward for small groups if you’re a sponsor. Have to find ways to change that’.
Kendal: ‘Having a marketing plan, good look/feel, consistent messaging – all help bring in more sponsors.’
Grant:’ Fact is, small UGs suffer. I know. Trick is, minimize your needs, don’t emulate big groups.’

On topics and speakers:
The topic deviated to if or finding big-name speakers was important or as important as topics. I spoke to my experience that big names draw big crowds – at user groups or sql Saturdays. Others chimed in as below.

Brent:There’s less of a “celebrity” factor in the SQL community than folks think.For most attendees, local presenters *are* stars.
Andy: ‘Topic matters as much, or more.’
Grant : ‘ Another vote for more. Topic wins huge. I’m seeing that more & more.’
Grant: ”Fight like heck to get big name speakers, even if it’s just remote.’

On drawing bigger crowds of people :
We had some debates on quality versus quantity of people. Charging a fee might mean fewer people but draw those who are really interested.
Brent – ‘Vendors want quality too, not just quantity’.
Grant – ‘Speaking as a vendor, we want quality, but let’s face it, quantity has a quality of it’s own.’

Everyone agreed that Andy had done a great job with Orlando SQL Saturday and also with blogging consistently on these issues. We look forward to more posts and guidance from him (with other thoughts and ideas also). as we move forward into the next year.

 

 

Previous Older Entries

Follow

Get every new post delivered to your Inbox.