Thursday, January 10, 2013
PASS launched a Global Growth Initiative in the Summer of 2011 with the appointment of three international Board advisors. Since then we’ve thought and talked extensively about how we make PASS more relevant to our members outside the US and Canada. We’ve collected much of that discussion in our Global Growth site. You can find vision documents, plans, governance proposals, feedback sites, and transcripts of Twitter chats and town hall meetings. We also address these plans at the Board Q&A during the 2012 Summit.
One of the biggest changes coming out of this process is around how we elect Board members. And that requires a change to the bylaws. We published the proposed bylaw changes as a red-lined document so you can clearly see the changes.
Our goal in these bylaw changes was to address the changes required by the global growth initiatives, conduct a legal review of the document and address other minor issues in the document. There are numerous small wording changes throughout the document. For example, we replaced every reference of “The Corporation” with the word “PASS” so it now reads “PASS is organized…”.
The biggest change in these bylaw changes is how the Board is composed and elected. This discussion starts in section VI.2. This section now says that some elected directors will come from geographic regions. I think this is the best way to make sure we give all of our members a voice in the leadership of the organization. The key parts of this section are:
The remaining Directors (i.e. the non-Officer Directors and non-Vendor Appointed Directors) shall be elected by the voting membership (“Elected Directors”). Elected Directors shall include representatives of defined PASS regions (“Regions”) as set forth below (“Regional Directors”) and at minimum one (1) additional Director-at-Large whose selection is not limited by region. Regional Directors shall include, but are not limited to, two (2) seats for the Region covering Canada and the United States of America.
Additional Regions for the purpose of electing additional Regional Directors and additional Director-at-Large seats for the purpose of expanding the Board shall be defined by a majority vote of the current Board of Directors and must be established prior to the public call for nominations in the general election. Previously defined Regions and seats approved by the Board of Directors shall remain in effect and can only be modified by a 2/3 majority vote by the then current Board of Directors.
Currently PASS has six At-Large Directors elected by the members. These changes allow for a Regional Director position that is elected by the members but must come from a particular region. It also stipulates that there must always be at least one Director-at-Large who can come from any region.
We also understand that PASS is currently a very US-centric organization. Our Summit is held in America, roughly half our chapters are in the US and Canada and most of the Board members over the last ten years have come from America. We wanted to reflect that by making sure that our US and Canadian volunteers would continue to play a significant role by ensuring that two Regional seats are reserved specifically for Canada and the US.
Other than that, the bylaws don’t create any specific regional seats. These rules allow us to create Regional Director seats but don’t require it. We haven’t fully discussed what the criteria will be in order for a region to have a seat designated for it or how many regions there will be. In our discussions we’ve broadly discussed regions for
- United States and Canada
- Europe, Middle East, and Africa (EMEA)
- Australia, New Zealand and Asia (also known as Asia Pacific or APAC)
- Mexico, South America, and Central America (LATAM)
As you can see, our thinking is that there will be a few large regions. I’ve also considered a non-North America region that we can gradually split into the regions above as our membership grows in those areas.
The regions will be defined by a policy document that will be published prior to the elections. I’m hoping that over the next year we can begin to publish more of what we do as Board-approved policy documents.
While the bylaws only require a single non-region specific At-large Director, I would expect we would always have two. That way we can have one in each election. I think it’s important that we always have one seat open that anyone who is eligible to run for the Board can contest. The Board is required to have any regions defined prior to the start of the election process.
Board Elections – Regional Seats
We spent a lot of time discussing how the elections would work for these Regional Director seats. Ultimately we decided that the simplest solution is that every PASS member should vote for every open seat. Section VIII.3 reads:
Candidates who are eligible (i.e. eligible to serve in such capacity subject to the criteria set forth herein or adopted by the Board of Directors) shall be designated to fill open Board seats in the following order of priority on the basis of total votes received: (i) full term Regional Director seats, (ii) full term Director-at-Large seats, (iii) not full term (vacated) Regional Director seats, (iv) not full term (vacated) Director-at-Large seats. For the purposes of clarity, because of eligibility requirements, it is contemplated that the candidates designated to the open Board seats may not receive more votes than certain other candidates who are not selected to the Board.
We debated whether to have multiple ballots or one single ballot. Multiple ballot elections get complicated quickly. Let’s say we have a ballot for US/Canada and one for Region 2. After that we’d need a mechanism to merge those two together and come up with the winner of the at-large seat or have another election for the at-large position.
We think the best way to do this is a single ballot and putting the highest vote getters into the most restrictive seats. Let’s look at an example:
There are seats open for Region 1, Region 2 and at-large. The election results are as follows:
- Candidate A (eligible for Region 1) – 550 votes
- Candidate B (eligible for Region 1) – 525 votes
- Candidate C (eligible for Region 1) – 475 votes
- Candidate D (eligible for Region 2) – 125 votes
- Candidate E (eligible for Region 2) – 75 votes
In this case, Candidate A is the winner for Region 1 and is assigned that seat. Candidate D is the winner for Region 2 and is assigned that seat. The at-large seat is filled by the high remaining vote getter which is Candidate B.
The key point to understand is that we may have a situation where a person with a lower vote total is elected to a regional seat and a person with a higher vote total is excluded. This will be true whether we had multiple ballots or a single ballot.
Board Elections – Vacant Seats
The other change to the election process is for vacant Board seats. The actual changes are sprinkled throughout the document.
Previously we didn’t have a mechanism that allowed for an election of a Board seat that we knew would be vacant in the future. The most common case is when a Board members moves to an Officer role in the middle of their term. One of the key changes is to allow the number of votes members have to match the number of open seats. This allows each voter to express their preference on all open seats. This only applies when we know about the opening prior to the call for nominations. This all means that if there’s a seat will be open at the start of the next Board term, and we know about it prior to the call for nominations, we can include that seat in the elections. Ultimately, the aim is to have PASS members decide who sits on the Board in as many situations as possible.
We discussed the option of changing the bylaws to just take next highest vote-getter in all other cases. I think that’s wrong for the following reasons:
- All voters aren’t able to express an opinion on all candidates. If there are five people running for three seats, you can only vote for three. You have no way to express your preference between #4 and #5.
- Different candidates may have different information about the number of seats available. A person may learn that a Board member plans to resign at the end of the year prior to that information being made public. They may understand that the top four vote getters will end up on the Board while the rest of the members believe there are only three openings. This may affect someone’s decision to run. I don’t think this creates a transparent, fair election.
- Board members may use their knowledge of the election results to decide whether to remain on the Board or not. Admittedly this one is unlikely but I don’t want to create a situation where this accusation can be leveled.
I think the majority of vacancies in the future will be handled through elections. The bylaw section quoted above also indicates that partial term vacancies will be filled after the full term seats are filled.
Section VI.7 on removing directors has always had a clause that allowed members to remove an elected director. We also had a clause that allowed appointed directors to be removed. We added a clause that allows the Board to remove for cause any director with a 2/3 majority vote. The updated text reads:
Any Director may be removed for cause by a 2/3 majority vote of the Board of Directors whenever in its judgment the best interests of PASS would be served thereby.
Notwithstanding the foregoing, the authority of any Director to act as in an official capacity as a Director or Officer of PASS may be suspended by the Board of Directors for cause.
Cause for suspension or removal of a Director shall include but not be limited to failure to meet any Board-approved performance expectations or the presence of a reason for suspension or dismissal as listed in Addendum B of these Bylaws.
The first paragraph is updated and the second and third are unchanged (except cleaning up language). If you scroll down and look at Addendum B of these bylaws you find the following:
Cause for suspension or dismissal of a member of the Board of Directors may include:
- Inability to attend Board meetings on a regular basis.
- Inability or unwillingness to act in a capacity designated by the Board of Directors.
- Failure to fulfill the responsibilities of the office.
- Inability to represent the Region elected to represent
- Failure to act in a manner consistent with PASS's Bylaws and/or policies.
- Misrepresentation of responsibility and/or authority.
- Misrepresentation of PASS.
- Unresolved conflict of interests with Board responsibilities.
- Breach of confidentiality.
The bold line about your inability to represent your region is what we added to the bylaws in this revision. We also added a clause to section VII.3 allowing the Board to remove an officer. That clause is much less restrictive. It doesn’t require cause and only requires a simple majority.
The Board of Directors may remove any Officer whenever in their judgment the best interests of PASS shall be served by such removal.
There are numerous other small changes throughout the document.
Proxy voting. The laws around how members and Board members proxy votes are specific in Illinois law. PASS is an Illinois corporation and is subject to Illinois laws. We changed section IV.5 to come into compliance with those laws. Specifically this says you can only vote through a proxy if you have a written proxy through your authorized attorney.
English language proficiency. As we increase our global footprint we come across more members that aren’t native English speakers. The business of PASS is conducted in English and it’s important that our Board members speak English. If we get big enough to afford translators, we may be able to relax this but right now we need English language skills for effective Board members.
Committees. The language around committees in section IX is old and dated. Our lawyers advised us to clean it up. This section specifically applies to any committees that the Board may form outside of portfolios. We removed the term limits, quorum and vacancies clause. We don’t currently have any committees that this would apply to. The Nominating Committee is covered elsewhere in the bylaws.
Electronic Votes. The change allows the Board to vote via email but the results must be unanimous. This is to conform with Illinois state law.
Immediate Past President. There was no mechanism to fill the IPP role if an outgoing President chose not to participate. We changed section VII.8 to allow the Board to invite any previous President to fill the role by majority vote.
Nominations Committee. We’ve opened the language to allow for the transparent election of the Nominations Committee as outlined by the 2011 Election Review Committee.
Revocation of Charters. The language surrounding the revocation of charters for local groups was flagged by the lawyers. We have allowed for the local user group to make all necessary payment before considering returning of items to PASS if required.
Bylaw notification. We’ve spent countless meetings working on these bylaws with the intent to not open them again any time in the near future. Should the bylaws be opened again, we have included a clause ensuring that the PASS membership is involved. I’m proud that the Board has remained committed to transparency and accountability to members. This clause will require that same level of commitment in the future even when all the current Board members have rolled off.
I think that covers everything. I’d encourage you to look through the red-line document and see the changes. It’s helpful to look at the language that’s being removed and the language that’s being added. I’m happy to answer any questions here or you can email them to email@example.com.
Tuesday, October 09, 2012
There’s another update to my little utility to script a SQL Server’s configuration. I use this for two purposes. First, I use it to keep my database mirroring servers up to date. Second, I capture the output in a version control system and keep that for historical reference.
In release 3.0.9 I made the following changes:
- Rewrote the encrypted trigger scripting. It will now list the encrypted triggers in a comment in the table script but can’t actually script them.
- It now scripts any server event notifications.
- You can script a single database using the /scriptdb flag. Please note that it will also script the instance and system databases when it does this.
- It will script any user-defined endpoints. This will capture your mirroring endpoints and more importantly any service broker endpoints.
- It will gracefully skip database mail on the Express Edition.
It still doesn’t support SQL Server 2012. I think that’s the next feature to add though.
Tuesday, July 10, 2012
I’ve been gradually adding features to my utility that scripts the configuration of a SQL Server. Since my last post I’ve added the following features:
- Skip any encrypted object in a database
- Script alerts, alert notifications and operators
- Script audits
- Always script model, master and msdb to capture any user-defined objects in those databases
- Logins are now scripted so that everything for a login is grouped together.
- There’s a second section in the logins that handles default databases. In many cases a login’s default database is a mirror target and can’t be set. This is now handled gracefully. It also includes a separate section for all default databases so those can be quickly set in the event of a disaster.
- Script credentials
- Script proxy accounts
- Script database mail
My goal is still to get everything outside a database scripted. This release is enough that I can keep my mirror target servers in sync with their principals.
Thursday, June 21, 2012
Nihao! One of the largest changes PASS is going through is the the expansion outside the US and Canada. We’ve had international chapters and events in Europe since the early 2000’s. But nothing on the scale we’re seeing now. Since January 1st there have been 18 SQL Saturday events outside North America and 19 events in North America. We hope to have three international SQLRally events outside the US in FY13 (budget willing). I don’t know the exact percentage of chapters outside the US but it’s got be 50% or higher.
We recently started an effort to remake the Board to better reflect the growing global face of PASS. This involves assigning some Board seats to geographic regions. You can ask questions about this in our feedback forum, participate in a Twitter chat or ask questions directly of Board members. You can email me at if you’d like to ask a question directly. We’re doing this very slowly and deliberately in hopes that a long communication cycle gives us a chance to address all the issues that our members will raise.
After the Summit we passed a budget exception allocating an extra $20,000 for Board members to travel to local events. I think it’s important for Board members to visit new areas and talk to more of our members. I sent out an email asking where people had attended events outside their home city. Here’s the list I got back: Albuquerque, Amsterdam, Boston, Brisbane, Chicago, Colorado Springs, Columbus, Dallas, Houston, Jacksonville, Las Vegas, London, Louisville, Minneapolis, New York City, Orange County, Orlando, Pensacola, Perth, Philadelphia, Phoenix, Redmond, Seattle, Silicon Valley, Sydney, Tampa Bay, Vancouver, Washington DC and Wellington. (Disclaimer: Some of this travel was paid for by employers or Board members themselves. Some of this travel may have been completed before the Summit. That’s still one heck of a list!)
The last SQL Saturday event this fiscal year is SQL Saturday Shanghai. And that’s one I’m attending. This is our first event in China and is being put on in cooperation with the local Microsoft office. Hopefully this event will be the start of a growing community in China that includes chapters, SQL Saturdays and maybe a SQLRally or two in the future. I’m excited to speak with people that are just starting down this path and watching this community grow.
I encourage you to visit the PASS Global Growth site and read through the material there. This is the biggest change we’ve made to our governance since I’ve been on the Board. You need to understand how it affects you and how it affects the organization.
And wish me luck on the 15 hour flight to Shanghai on Friday afternoon. Rob Farley flies from Australia to the US for PASS events multiple times per year and I don’t know how he does it so often. I think one of these is going to wipe me out. (And Nihao (knee-how) is Chinese for Hello.)
Wednesday, June 20, 2012
The next Kansas City SQL Saturday is coming up on August 4th. We’ll have the usual SQL Saturday goodness: lots of technical sessions, great networking events and a fantastic speaker dinner. And we’ll have the Third Annual Kansas City SQL Saturday BBQ Crawl.
On Friday afternoon we’ll visit a few BBQ places in town. We tend to order big sampler plates and just share everything around. It’s a great way to try a variety of styles. This year we’ll be hitting an all new selection of BBQ joints.
You don’t need to be a speaker to attend. However the call for speakers is open until June 28th (hint, hint). Locals and out-of-towners are all welcome.
If you’re interested in attending send me an email and I’ll get you added to the list.
We finish in plenty of time to get you to the speaker dinner – as if you could eat any more.
Tuesday, June 12, 2012
I’ve updated the beta for ClearTrace that support SQL Server 2012. This requires SQL Server 2012 to be installed on the computer where ClearTrace is running. It will read traces from SQL Server 2008 R2, SQL Server 2008 and SQL Server 2005.
It includes some minor improvements in performance and handling large SQL statements. It should also give better errors.
If you do find any of those errors, please report them in the support forum.
Friday, June 01, 2012
The PASS Board recently decided that we wouldn’t put another US-based SQLRally on the calendar until we had a chance to review the program. I wanted to provide some of my thinking around this. Keep in mind that this is the opinion of one Board member.
The Board committed to complete two SQLRally events to determine if an event modeled between SQL Saturday and the Summit was viable. We’ve completed the two events and now it’s time to step back and review the program.
This is my seventh year on the PASS Board. Over that time people have asked me why PASS does certain things. Many, many times my answer has been “Because that’s the way we did it last year”. And I am tired of giving that answer. We need to take a step back and review the US-based SQLRally before we schedule another one. It would be irresponsible for me as a Board member to commit resources to this without validating that what we’re doing makes sense for the organization and our members. I have no doubt that this was a great event for the attendees. We just need to validate it’s the best use of our resources.
Please keep in mind that we haven’t cancelled the event. We’ve just said we need to review it before scheduling another one. My opinion is that some fairly serious changes are needed to the model before we consider it again – IF we do it again. I’ve come to that conclusion after speaking with the Dallas organizers, our HQ team, our Marketing team, other Board members (including one of the Orlando organizers), attendees in Orlando and Dallas and visiting other similar events. I should point out that their views aren’t unanimous on nearly any part of this event -- which is one of the reasons I want to take some time and think about this before continuing.
I think it’s helpful to look at the original goals of what we were trying to accomplish. Andy Warren wrote these up in August of 2010. My summary of these goals and some thoughts on each one is below. Many of these thoughts revolve around the growth of SQL Saturdays. In the two years since that document was written these events have grown significantly. The largest SQL Saturdays are now over 500 people which mean they are nearly the same size as our recent SQLRally.
Our goals included:
- Geographic diversity. We wanted an event in an area of the country that was away from any given Summit location. I think that’s still a valid goal. But we also have SQL Saturdays all over the country. What does SQLRally bring to this that SQLSaturday doesn’t?
- Speaker growth. One of the stated goals was to build a “farm club” for speakers. This gives us a way for speakers to work up to speaking at Summit by speaking in front of larger crowds. What does SQLRally bring to this that the larger SQL Saturdays aren’t providing? Pre-Conference speakers is one obvious answer here.
- Lower price. On a per-day basis, SQLRally is roughly 1/4th the price of the Summit. We wanted a way for people to experience something Summit-like at a lower price point. The challenge is that we are very budget constrained at that lower price point.
- International Event Model. (I need to write more about this but I’m out of time. I’ll cover it in the next installment.)
There are a number of things I really like about SQLRally. I love the smaller conferences. They give me a chance to meet more people than at something the size of Summit. I like the two day format. That gives you two evenings to be at social events with people. Seeing someone a second day is a great way to build a bond with that person. That’s more difficult to do at a SQL Saturday.
We also need to talk about the financial aspects of the event. Last year generated a small $17,000 profit on revenues of $200,000. Percentage-wise that’s reasonable but on an absolute basis it’s not a huge amount in our budget. We think this year will lose between $30,000 and $50,000 and take roughly 1,000 hours of HQ time. We don’t have detailed financials back yet but that’s our best guess at this point. Part of that was driven by using a convention center instead of a hotel. Until we get detailed financials back we won’t have the full picture around the financial impact.
This event also takes time and mindshare from our Marketing team. This may sound like a small thing but please don’t underestimate it. Our original vision for this was something that would take very little time from our Marketing team and just a few mentions in the Connector. It turned out to need more than that. And all those mentions and emails take up space we could use to talk about other events and other programs.
Last I wanted to talk about some of the things I’m thinking about. I don’t think it’s as simple as saying if we just fix “X” it all gets better.
- Is this that much better of an event than SQL Saturdays? What if we gave a few SQL Saturdays some extra resources? When SQL Saturdays were around 250 people that wasn’t as viable. With some of those events over 500 we need to reconsider this.
- We need to get back to a hotel venue. That will help with cost and networking.
- Is this the best use of the 1,000 HQ hours that we invested in the event?
- Is our price-point correct? I’m leaning toward raising our price closer to Summit on a per-day basis. I think this will let us put on a higher quality event and alleviate much of the budget pressure.
- Should growing speakers be a focus? Having top-line pre-conference speakers helps market the event. It will also have an impact on pricing and overall profit. We should also ask if it actually does grow speakers.
- How many of these people will eventually register for Summit? Attend chapters? Is SQLRally a driver into PASS or is it something that chapters, etc. drive people to?
- Should we have one paid day and one free instead of two paid days? This is a very interesting model that is used by SQLBits in the UK. This gives you the two day aspect as well as offering options for paid and free attendees. I’m very intrigued by this.
- Should we focus on a topic? Buried in the minutes is a discussion of whether PASS should have a Business Analytics conference separate from Summit. This is an interesting question to consider. Would making SQLRally be focused on a particular topic make it more attractive? Would that even be a SQLRally? Can PASS effectively manage the two events? (FYI - Probably not.) Would it help differentiate it from Summit and SQL Saturday?
These are all questions that I think should be asked and answered before we do this event again. And we can’t do that if we don’t take time to have the discussion. I wanted to get this published before I take off for a few days of vacation. When I get back I’d like to write more about why the international events are different and talk about where we go from here.
Thursday, April 26, 2012
I’ve always worked to make ClearTrace perform well. That’s probably because I spend so much time watching it work. I’m often going through two or three gigabytes of trace files but I rarely get the chance to run it on a really large set of files.
One of my clients wanted to run a full trace for a week and then analyze the results. At the end of that week we had 847 200MB trace files for a total of nearly 170GB.
I regularly use 200MB trace files when I monitor production systems. I usually get around 300,000 statements in a file that size if it’s mostly stored procedures. So those 847 trace files contained roughly 250 million statements. (That’s 730 bytes per statement if you’re keeping track. Newer trace files have some compression in them but I’m not exactly sure what they’re doing.) On a system running 1,000 statements per second I get a new file every five minutes or so.
It took 27 hours to process these files on an older development box. That works out to 1.77MB/second. That means ClearTrace processed about 2,654 statements per second. You can query the data while you’re loading it but I’ve found it works better to use a second instance of ClearTrace to do this. I’m not sure why yet but I think there’s still some dependency between the two processes.
ClearTrace is almost always CPU bound. It’s really just a huge, ugly collection of regular expressions. It only writes a summary to its database at the end of each trace file so that usually isn’t a bottleneck. At the end of this process, the executable was using roughly 435MB of RAM. Certainly more than when it started but I think that’s acceptable.
The database where all this is stored started out at 100MB. After processing 170GB of trace files the database had grown to 203MB. The space savings are due to the “datawarehouse-ish” design and only storing a summary of each trace file.
You can download ClearTrace for SQL Server 2008 or test out the beta version for SQL Server 2012. Happy Tuning!
Wednesday, April 25, 2012
I have a beta version of ClearTrace that supports 2012. You can download it at http://www.scalesql.com/cleartrace/ClearTrace.2012.40.beta.zip. Please let me know if you find any issues.
Sunday, March 11, 2012
Last spring I released a utility to script SQL Server configuration information on CodePlex. I’ve been making small changes in this application as my needs have changed. The application is a .NET 2.0 console application.
This utility serves two needs for me. First it helps with disaster recovery. All server level objects (logins, jobs, linked servers, audits) are scripted to a single file per object type. This enables the scripts to be easily run against a DR server. If these are checked into source control you can view the history of the script and find out what changed and when.
The second goal is to capture what changed inside a database. Objects inside a database (tables, stored procedures, views, etc.) are each scripted to their own file. This makes it easier to track the changes to an object over time. This does include permissions and role membership so you can capture security changes. My assumption is that a database backup is the primary method of disaster recovery for databases so this utility is designed to capture changes to objects.
You can find the full list of changes from the original on the Downloads page on CodePlex.
Thursday, December 01, 2011
I’m presenting in Omaha on Writing Faster SQL at 6PM on December 7th. You can find meeting details on the Omaha SQL Server User Group page. The meeting location requires an RSVP so building security has a list of attendees.
The presentation is a series of suggestions on improving performance. It ranges from simple things like comparing indexed columns to scalar values up to tips for reducing query compiles and asynchronous processing patterns. Nearly all of these come from specific issues I’ve encountered working on poorly performing SQL Servers.
Saturday, October 08, 2011
At the Summit you’ll see PASS announce the total attendance and the “total registrations”. The total registrations is the sum of the conference attendees and the pre-conference registrations. A single person can be counted three times (conference plus two pre-cons) in the total registration count.
When I was doing marketing for the Summit this drove me nuts. I couldn’t figure out why anyone would use total registrations. However, when I tried to stop reporting this number I got lots of pushback. Apparently this is how conferences compare themselves to each other. Vendors, sponsors and Microsoft all wanted to know our total registration number. I was even asked why we weren’t doing more “things” that people could register for so that our number would be even larger. This drove me nuts.
I understand that many of you are very detail oriented. I just want to make sure you understand what numbers you’re seeing when we include them in the keynote at the Summit.
Tuesday, October 04, 2011
The last two years we’ve put the Board in front of the members and taken questions. We’re going to do that again this year. It will be in Room 307/308 from 12:15 to 1:30 on Friday.
Yes, this time overlaps with the Birds of a Feather Lunch and the start of afternoon sessions – but only partially. You can attend the Q&A and still get to parts of both of those. There just isn’t a great time to do this. Every time overlaps with something. We can’t do it after the last session on Friday. We can’t fit it between the last session and the evening events on Wednesday or Thursday. We had some discussion around breakfast time but I didn’t think that was realistic. This is the least bad time we could come up with.
Last year we had 60-70 people attend. These are the items that were specific things that I could work on:
- The first question was whether to increase transparency around individual votes of Board members. We approved this at the Board meeting the following day. The only caveat was that if the Board is given confidential information as a basis for their vote then we may not be able to disclose individual votes. Putting a Director in a position where they can’t publicly defend the reason for their vote is a difficult situation. Thanks Kendal!
- Can we have a Board member discretionary fund? As background, I took a couple of people to lunch so we could have a quiet place to talk. I bought lunch but wasn’t able to expense it back to PASS. We just don’t have a budget item for things like this. I think we should. I would guess the entire Board would like it also. It was in an earlier version of the budget but came out as part of a cost-cutting move to balance the budget. I’d like to see it added back in but we’ll have to see.
- I know there were a comments about the elections. At this point we had created the Election Review Committee. I’ve already written at length about this process.
- Where does IT work go? PASS started to publish our internal management reports starting in December 2010. You can find them on our Governance page. These aren’t filtered at all and include a variety of information about IT projects. The most recent update had roughly a page of updates related to IT. Lots of the work was related to Summit and the Orator tool that we use to manage speaker submissions.
- There were numerous requests that Tina Turner not be repeated. Done. I don’t think we’ll do anything quite like that again.
- We had a request for a payment plan for Summit. We looked into this briefly but didn’t take any action. We didn’t think the effort was worth the small number of people that would use it. If you disagree, submit this on our Summit Feedback site and get some votes.
- There were lots of suggestions around the first-timers events – especially from first timers. You can find all our current activities related to first-timers at the First Timers page on the Summit web site. Plus links to 34 (!) blog posts on suggestions for first-timers. And a big THANK YOU to Confio and Red Gate for sponsoring this.
I hope you get the chance to attend. These events are very helpful to me as a Board member. I like being able to look around the room as comments are being made and see the audience reaction. It helps me gauge the interest in an idea.
I’d also like to direct you to the Summit Feedback site. You can submit and vote on ideas to make the Summit a better experience. As of right now we have the suggestions from last year still up. We may reset these prior to the Summit though.
Tuesday, September 27, 2011
Our budget situation is a little different this year than in years past. We were late getting an initial budget approved. There are a number of different reasons this occurred. We had different competing priorities and the budget got pushed down the list. And that’s completely my fault for not making the budget a higher priority and getting it completed on time.
That left us with initial budget approval in early August rather than prior to June 30th. Even after that there were a number of small adjustments that needed to be made. And one large glaring mistake that needed to be fixed. We had a typo in the budget that made it through twelve versions of review. In my defense I can only say that the cell was red so of course it had to be negative! And that’s one more mistake I can add to my long and growing list of Mistakes I’ll Never Make Again.
Last week we passed a revised budget (version 17) with this corrected. This is the version we’re cleaning up and posting to the web site this week or next.
Monday, August 15, 2011
I did another SQL Server migration over the weekend that dealt with linked servers. I’ve seen all kinds of odd naming schemes and there are a few I like and a few I suggest you avoid.
Don’t name your linked server for its IP address. At some point whatever is on the other end of that IP address will move. You’ll probably need to point your linked server to a new IP address but not change the name of the linked server. And then you’ve completely lost any context around this. Bonus points if a new SQL Server eventually ends up at the old IP address further adding confusion when you’re trying to troubleshoot.
Don’t name your linked server based on its instance name. This one is less obvious. It sounds nice to have a linked server named [VSRV1\SQLTRAN01]. You know what it is and it’s easy to use. It’s less nice when you’ve got 200 stored procedures that all reference this linked server but the database they reference has moved to a new instance. Now when you query this you’re actually querying a different instance.
(Please note: I’m not saying it’s a good idea to have 200 stored procedures that all reference a linked server. I’m just saying it’s not all that uncommon.)
Consider naming your linked server something that you can easily search on. See my note above. You can also get around this by always enclosing the name in brackets. That is harder to enforce unless you use some odd characters in it.
Consider naming your linked server based on the function. For example, I’ve had some luck having a linked server named [DW] that points to our data warehouse server. That server can change names or physically move and all I need to do is update the linked server to point to the new destination. The descriptive name of the linked server is still accurate. No code needs to change and people still know what it is just by looking at it.
Consider naming your linked server for the database. I’m still thinking through this one. It may mean you have multiple linked servers that point to the same instance. I’ve found that database names rarely change. It also makes it easier to move individual databases to new servers.
Consider pointing your linked servers to DNS entries and not IP addresses. I’ve done this for reporting databases and had some success. Especially for read-only snapshots that can get created on the main database or on the mirror.
What issues have you had with linked server names? What has worked for you? Where are the holes in my approach?