There’s a contest going on at PASS looking for answers to “Best Thing I Learned at PASS”. I have been busy enough that I kept putting this on the back burner. But it's time to put in my 2-cents.
Since the contest has a size limit, I am partitioning the story below from the rest of this blog entry.
Contest Entry starts here
--------------------------
Let’s start at the beginning. I wanted to learn more about SQL Server, and found a local User Group, and attended.
After a few meetings, I got to know a few people, including the President. Having these contacts, and being able to ask questions of these local ‘knowledge stores’ when I needed help was priceless. If the story ended there, it would already be a success story. I had networked and learned. I was a better DBA for it.
But that’s not the end. The President told me that I should go to PASS. Since I trusted him already, I went. My family came with me to Florida, and went to DisneyWorld, as I went to PASS. I remember being alone with people all around me. But I soon noticed tons of people, just like me, wanting to learn. During the conference, I saw a few people that I knew, and recognized some names from books I had read. Soon, I realized that all the people attending and speaking, were just like me. This is the 1st great thing that I learned; there are no experts that are better than me, they are people just like me, they just learned this stuff earlier. Now they are sharing with the rest of us. I too can learn what they know. The quantity of knowledge and contacts I have gained because I attended PASS cannot be measured. And that’s why we are all here at PASS. To learn and to network.
--------------------------
Contest Entry ends here
I just wanted to say a few more words in regards to PASS summits that wouldnt fit in the contest.
I have been to many PASS summits, as many as my employer has allowed. Some times, my employer has not allowed it. This has been a source of frustration to me. This annual event is where I get to join up with others of my kind, and learn from them. This has increased my knowledge so much. I hope that i get to go this year, and in future years. Regardless of attendance, I am an avid volunteer in various pieces of the PASS puzzle. This volunteerism gives me a satisfaction that i cannot gain elsewhere, especially at work. Its a great opportunity. All should attend and learn and network and better themselves. Then return and repeat.
My journal of the adventures and activities that I enjoy in my life. Some posts will be work related. Other posts will be family related. A smattering of me is what you will get by reading this blog.
Monday, June 15, 2009
Monday, June 08, 2009
Turning off / on SQL Server Agent
Today, i was writing a script to detach and attach some databases. We have a set of dbs that are in 2 modes now, with 2 copies of dbs to support those modes. I needed to quickly be able to 'toggle' between them. In 1 mode, the SQL Server Agent needed to be disabled, while in the other mode, it needs to remain on.
So, I searched my local drive for a solution, some script or document. Nothing.
I turned to google. Simultaneously turned to Twitter. I ended up at SQL Server Central, and found some folks talking about it.
Ultimately, i opened up Profiler and turned a local machine db's SQL Agent on and off, while tracing the activity. After a few failed attempts, i narrowed it down to these pieces of code.
--off
EXECUTE master.dbo.xp_sqlagent_monitor 'STOP', NULL, 0, 1
exec sys.sp_configure @configname = N'Agent XPs', @configvalue = 0
reconfigure with override
--on
EXECUTE master.dbo.xp_sqlagent_monitor 'START', N'', 1
exec sys.sp_configure @configname = N'Agent XPs', @configvalue = 1
reconfigure with override
I would execute the off, while Agent was on, and then have to refresh SSMS to see the change. Sure enough it was off. I'd then execute the on code, refresh, and saw it was on. Viola! I exclaimed in a loud voice my manliness and heorism to all around me. Thats when a small voice from the next cube reminded me that the server I was to 'toggle' was a Cluster, and that the SQL Agent needed to be altered from Cluster Administrator.
Oh well. I learned something. Now I want to know if it will work with Clusters. But i do not have the means to test that thought, since the box I was toggling is live, and i shouldnt be testing on it. Someday, I'll get a better test, or find out the answer, and post it here.
So, I searched my local drive for a solution, some script or document. Nothing.
I turned to google. Simultaneously turned to Twitter. I ended up at SQL Server Central, and found some folks talking about it.
Ultimately, i opened up Profiler and turned a local machine db's SQL Agent on and off, while tracing the activity. After a few failed attempts, i narrowed it down to these pieces of code.
--off
EXECUTE master.dbo.xp_sqlagent_monitor 'STOP', NULL, 0, 1
exec sys.sp_configure @configname = N'Agent XPs', @configvalue = 0
reconfigure with override
--on
EXECUTE master.dbo.xp_sqlagent_monitor 'START', N'', 1
exec sys.sp_configure @configname = N'Agent XPs', @configvalue = 1
reconfigure with override
I would execute the off, while Agent was on, and then have to refresh SSMS to see the change. Sure enough it was off. I'd then execute the on code, refresh, and saw it was on. Viola! I exclaimed in a loud voice my manliness and heorism to all around me. Thats when a small voice from the next cube reminded me that the server I was to 'toggle' was a Cluster, and that the SQL Agent needed to be altered from Cluster Administrator.
Oh well. I learned something. Now I want to know if it will work with Clusters. But i do not have the means to test that thought, since the box I was toggling is live, and i shouldnt be testing on it. Someday, I'll get a better test, or find out the answer, and post it here.
Monday, May 25, 2009
Memorial Day
My grandpa served in the military, many, many years ago. My father was spared the draft, because I was to be born soon, and he got a bye and didn't goto Vietnam. I don't have uncles or other close relatives that served in the military. I do have a strong desire to support and honor those that have served. I have often reflected on their continued service and protection of our way of life, and felt overwhelmed. I have a neighbor that served in Vietnam, in the motor pool He tells stories of the building next to his, where he slept, being destroyed by enemy fire. The entire building was leveled, while his stood unscathed. We call have stories that we can tell of people we know that served.
Today, as we stayed home from work, and before we went out to play on this vacation day, I logged into the internet and hit Facebook. I saw a couple posts from friends of mine, talking about another friend I went to school with. We were friends. This person, Jason George, was a year younger than me, and we hung in the same circles. After high school, he went on to Westpoint, and more and more education. I only recently reconnected with him over Facebook and we had a few interactions. It was nice to reconnect and see what life had brought him. A while after we reconnected, he was called up to serve again. He spent some time on Facebook trying to get his life here in order, before being sent out to his assignments in Iraq. In April, he arrived in Iraq, and on the 5th of May he arrived in Iraq. While doing foot patrol last week, he, along with 2 other soldiers and 25 Iraqi citizens were killed by a suicide bomber.
This I learned on the morning of Memorial Day. I honor his memory. I will always think of him when I see someone wearing shorts and a sweater. Certain things will always remind me of him, even though we had lost contact these past few years. He bettered himself, and worked hard to gain skills and knowledge. He used this in his professional life as well as his time in the military. He selflessly went over there to assist in the rebuilding of their economy. He hoped to use his skills and knowledge to make it a better place. He put on a soldiers uniform, and tried to make the world a better place. He died doing this. I will always remember him, and especially on this holiday, Memorial Day.
Read his story here.
Today, as we stayed home from work, and before we went out to play on this vacation day, I logged into the internet and hit Facebook. I saw a couple posts from friends of mine, talking about another friend I went to school with. We were friends. This person, Jason George, was a year younger than me, and we hung in the same circles. After high school, he went on to Westpoint, and more and more education. I only recently reconnected with him over Facebook and we had a few interactions. It was nice to reconnect and see what life had brought him. A while after we reconnected, he was called up to serve again. He spent some time on Facebook trying to get his life here in order, before being sent out to his assignments in Iraq. In April, he arrived in Iraq, and on the 5th of May he arrived in Iraq. While doing foot patrol last week, he, along with 2 other soldiers and 25 Iraqi citizens were killed by a suicide bomber.
This I learned on the morning of Memorial Day. I honor his memory. I will always think of him when I see someone wearing shorts and a sweater. Certain things will always remind me of him, even though we had lost contact these past few years. He bettered himself, and worked hard to gain skills and knowledge. He used this in his professional life as well as his time in the military. He selflessly went over there to assist in the rebuilding of their economy. He hoped to use his skills and knowledge to make it a better place. He put on a soldiers uniform, and tried to make the world a better place. He died doing this. I will always remember him, and especially on this holiday, Memorial Day.
Read his story here.
Friday, May 15, 2009
Releasing Database Objects : Release Management Process
All this week, I have been working on two large releases to our database topology. We have a complicated system, at least when it comes to releasing schema changes. We use a third party replication system that doesnt replicate DDL changes. So, we have to go thru some hoops to push changes out to the systems. And there are multiple systems, some being HOT, others WARM, and so on. We also have multiple environments, Prod, Stage, Integration, and so on.
When our Development group pushes changes out, they are in an Agile mode of developement, and often do not know the actual dates they want to push things out. Often, we'll have slippage of dates, and projects leapfrogging one another. Being on the Service Delivery side of the fence, across the field from the Development group, and apparantly speaking an entirely different dialect of the IT language we all speak, we end up having issues. This week was one of those. A lot of time was spent digging into the release requirements, seeing how this could best be applied to our systems, creating release plans to perform the individual steps, and actually testing these steps in a test environment that mimics our multiple server Production environment. It takes a bit of time to prep the environment, and ensure that the release is ready to be performed, then to actually perform it. Once done, reversing what we just did, and doing it again often occurs.
Needless to say, we are always trying to make the process better, cleaner, smoother, and more effective. The whole idea now is to spend this time now, before a release, and test it over and over, to ensure it succeeds on the actual release time. So far, so good. We are making good progress. The last release, was one of the larger ones we've ever done, and we had no failures or rollbacks.
The biggest problem with these releases and processes? Not the Tech. Not the database. Not the data. Its people dealing with other people. I alluded to it earlier with the IT language quip. But this seems to be the crux of any issues. And I do not stand on the fence saying that those people over there are he fault. Its human interactions and communications that is the problem.
Picking a date and time for a release seems to be an almost impossible task. We currently can pick any day but Friday. Prod releases occur after 6pm, while Stage and all other lower environments can happen any day, any time. And they often do, regardless of the time that was set and agreed upon. Things happen, times slip, often dates slip. Every other scheduled time and date subsequent to the first slippage naturally occurs.
If you have read this far, and was secretly hoping that you'd stumble upon the solution to the above issues, i fear i have to dissapoint you. I do not have them. Each time I think I do, I find that I end up introducing issues that others complain about. Often this is an unforseen side effect to my statements. What I do hope that happens is that if you have read this far, you have applied this story to your systems, and have seen discrepancies between mine and yours and have ways to improve ours. Or, maybe you actually had some ideas of how to alter a release management process and want to share.
So, lets talk, discuss and share.
When our Development group pushes changes out, they are in an Agile mode of developement, and often do not know the actual dates they want to push things out. Often, we'll have slippage of dates, and projects leapfrogging one another. Being on the Service Delivery side of the fence, across the field from the Development group, and apparantly speaking an entirely different dialect of the IT language we all speak, we end up having issues. This week was one of those. A lot of time was spent digging into the release requirements, seeing how this could best be applied to our systems, creating release plans to perform the individual steps, and actually testing these steps in a test environment that mimics our multiple server Production environment. It takes a bit of time to prep the environment, and ensure that the release is ready to be performed, then to actually perform it. Once done, reversing what we just did, and doing it again often occurs.
Needless to say, we are always trying to make the process better, cleaner, smoother, and more effective. The whole idea now is to spend this time now, before a release, and test it over and over, to ensure it succeeds on the actual release time. So far, so good. We are making good progress. The last release, was one of the larger ones we've ever done, and we had no failures or rollbacks.
The biggest problem with these releases and processes? Not the Tech. Not the database. Not the data. Its people dealing with other people. I alluded to it earlier with the IT language quip. But this seems to be the crux of any issues. And I do not stand on the fence saying that those people over there are he fault. Its human interactions and communications that is the problem.
Picking a date and time for a release seems to be an almost impossible task. We currently can pick any day but Friday. Prod releases occur after 6pm, while Stage and all other lower environments can happen any day, any time. And they often do, regardless of the time that was set and agreed upon. Things happen, times slip, often dates slip. Every other scheduled time and date subsequent to the first slippage naturally occurs.
If you have read this far, and was secretly hoping that you'd stumble upon the solution to the above issues, i fear i have to dissapoint you. I do not have them. Each time I think I do, I find that I end up introducing issues that others complain about. Often this is an unforseen side effect to my statements. What I do hope that happens is that if you have read this far, you have applied this story to your systems, and have seen discrepancies between mine and yours and have ways to improve ours. Or, maybe you actually had some ideas of how to alter a release management process and want to share.
So, lets talk, discuss and share.
Thursday, May 07, 2009
Social Networking : It does work
Today, as I looked at my RSS feed, I noticed a new tweep (@AdamMechanic) had a funny comment about twitter. He basically said that he had 'swalloed the twitter-colored pill. With reference to the Matrix, and the blue vs red colored pill scene. So, I thought, what colored pill would it be? The first color that came to my mind was my favorite color of all time. Chartreuse. This color has been a part of my life for as long as I can remember. Many things became painted that color. I would hunt it out and purchase items with it. Then it became a fashionable color, and I started seeing others using it. Many more products were available. This too, like all things, waned and I was left alone again with my favorite color.
Back to twitter, and the comment I made about this being the color of the twitter-colored pill. Back and forth a couple comments flew between me and he about this color, and i learned something new. Apparently, Chartreuse is a color halfway between yellow and green that was named because of its resemblance to the green color of one of the French liqueurs called green chartreuse, introduced in 1764. 1764? This, my favorite color for 20 plus years, a color I had tried to learn about and incorporate into my life, has been around that long and was named after a liqueur? I had no idea. I learned something new. I was amazed.
So, even this has nothing to do with SQL, or may career, it does have to do with the power of talking to people, and being open to learning new things. This technique has been applied to my career and SQL in specific. These are the reasons I blog and joined twitter. But be careful. You must do more than just your career and intended goal of twitter communication to make it work. Expand your communication with others, talk about all kinds of things. Not all the time, but often. Form that ever so slight connection with another human on a level that they can share something with you, and vice-a-versa. Repeat the process with this person and many others.
Then, someday, you tool will have in your toolbox the powerful tool that twitter and social networking can be.
As a side note, later that same morning, I had a simple question that was not SQL related. I posed it on twitter, and got 8 responses 6 people withing 15 minutes. Its like a room full of experts that I can stand in front of and ask a question. Some will respond. Others may not. But you will find that when its your turn to the in the audience, and you can answer, and you do, the answers you will soon need will flow your direction when the tables are turned.
So, join in to the conversation. Speak up. Answer questions. Ask questions. Get involved and tell your tales of how your container of knowledge has increased by your interacting with others.
Back to twitter, and the comment I made about this being the color of the twitter-colored pill. Back and forth a couple comments flew between me and he about this color, and i learned something new. Apparently, Chartreuse is a color halfway between yellow and green that was named because of its resemblance to the green color of one of the French liqueurs called green chartreuse, introduced in 1764. 1764? This, my favorite color for 20 plus years, a color I had tried to learn about and incorporate into my life, has been around that long and was named after a liqueur? I had no idea. I learned something new. I was amazed.
So, even this has nothing to do with SQL, or may career, it does have to do with the power of talking to people, and being open to learning new things. This technique has been applied to my career and SQL in specific. These are the reasons I blog and joined twitter. But be careful. You must do more than just your career and intended goal of twitter communication to make it work. Expand your communication with others, talk about all kinds of things. Not all the time, but often. Form that ever so slight connection with another human on a level that they can share something with you, and vice-a-versa. Repeat the process with this person and many others.
Then, someday, you tool will have in your toolbox the powerful tool that twitter and social networking can be.
As a side note, later that same morning, I had a simple question that was not SQL related. I posed it on twitter, and got 8 responses 6 people withing 15 minutes. Its like a room full of experts that I can stand in front of and ask a question. Some will respond. Others may not. But you will find that when its your turn to the in the audience, and you can answer, and you do, the answers you will soon need will flow your direction when the tables are turned.
So, join in to the conversation. Speak up. Answer questions. Ask questions. Get involved and tell your tales of how your container of knowledge has increased by your interacting with others.
Wednesday, May 06, 2009
GoldenGate replication issues - No More?
Before today, we have not had good luck releasing schema changes to our environment without affecting our GoldenGate replication topology adversely. All ill effects have been surmountable, but stressful, nonetheless. We have a Hot, Warm and DR set of servers that has GoldenGate sending the data from Hot to Warm and Hot to DR. Most of the data is replicated in this fashion, and its fast. We have very little latency, compared to Native Replication we have used in the past.
But doing a release has always been a scary proposition. We would turn things back on, only to have massive errors, and time spent fixing the errors. We have tested and tested and performed more tests to ensure that we have a plan of attack that will succeed.
Today was the day! It all paid off!! We now have a process that allows us to block a table, perform a schema change to it, and through appropriate steps, stop and restart replication where needed. Many steps are needed to perform this, and in this case, it was a two man job to perform the release. The bulk was done in about 14 minutes, with us taking our time, being cautious, and validating our changes. The rest of the release proceeded as a simple release should, and went off without a hitch.
This is a happy day. We have a successful release plan to update schema on live tables, being replicated with GoldenGate replication, without bring it down upon our heads. Yeah.
But doing a release has always been a scary proposition. We would turn things back on, only to have massive errors, and time spent fixing the errors. We have tested and tested and performed more tests to ensure that we have a plan of attack that will succeed.
Today was the day! It all paid off!! We now have a process that allows us to block a table, perform a schema change to it, and through appropriate steps, stop and restart replication where needed. Many steps are needed to perform this, and in this case, it was a two man job to perform the release. The bulk was done in about 14 minutes, with us taking our time, being cautious, and validating our changes. The rest of the release proceeded as a simple release should, and went off without a hitch.
This is a happy day. We have a successful release plan to update schema on live tables, being replicated with GoldenGate replication, without bring it down upon our heads. Yeah.
Thursday, April 23, 2009
Are we there yet?
When I was growing up, while on trips with the family, we'd always ask my dad if we were there yet. For some reason, we needed to know how much longer we'd be in the vehicle. My dad's answer was always the same. A half hour. This seemed to satisfy us for a while. When we repeated the request, the answer was the same, regardless of the actual time.
Obviously we stopped believing the answer with time. But that didn't prevent us from asking and more importantly, from wanting to know. My own children ask similar questions. My son likes to know what we are doing, or watching, and so on. We humans like to know that things have a finite length of existence. We like to plan things. Start them. Know when they will end or when they will be over.
Recall when you would copy a file in older versions of Windows, the flying file icon and the guessed completion time. It aggravated me to find out that this was just a guess, and was often wrong. Why couldn't it tell me the correct duration? Why couldn't I be privy to this knowledge. It would help me to plan what I would do next, based on how long this action could take.
Where am I going with this? The other day at work, we were performing some tasks. We kicked off the task. As soon as it was running, we wanted to know how long it would take to complete. Sometimes we can lean on scripts and processes that we have previously written. When we do not have canned scripts or tools ready, we often panic. We will try to invent something on the spot. In a few occasions I have asked the twitterverse for assistance, and received help there. Other coworkers have provided help as well. But each time, I wanted to know much sooner than I was able too, when it would be done. What I should have done was taken the time before hand, to create the needed script or tool or means to determine progress, prior to kicking off the process. This is not always an option. Its a good idea though.
Once the process has completed, I want so desperately to spend time writing these scripts or tools. If I can, I will, and save them for the next time. Keeping these tools handy will better allow me to answer these questions next time. Take the time now to better prepare these tools. Do it when your head is clear, and you can write them without the pressure of a running process. Share them with others, coworkers and the SQL community.
Ideas
backups, native and 3rd party
bcp or bulk insert processes
dts/ssis packages and its steps
reindexing scripts
attaching/restoring database
These are the ones that appear on the tip of my tongue. You will have others that ring a bell for you. Identify them now. Come up with the tools to answer that burning question, 'Are we there yet?'
Obviously we stopped believing the answer with time. But that didn't prevent us from asking and more importantly, from wanting to know. My own children ask similar questions. My son likes to know what we are doing, or watching, and so on. We humans like to know that things have a finite length of existence. We like to plan things. Start them. Know when they will end or when they will be over.
Recall when you would copy a file in older versions of Windows, the flying file icon and the guessed completion time. It aggravated me to find out that this was just a guess, and was often wrong. Why couldn't it tell me the correct duration? Why couldn't I be privy to this knowledge. It would help me to plan what I would do next, based on how long this action could take.
Where am I going with this? The other day at work, we were performing some tasks. We kicked off the task. As soon as it was running, we wanted to know how long it would take to complete. Sometimes we can lean on scripts and processes that we have previously written. When we do not have canned scripts or tools ready, we often panic. We will try to invent something on the spot. In a few occasions I have asked the twitterverse for assistance, and received help there. Other coworkers have provided help as well. But each time, I wanted to know much sooner than I was able too, when it would be done. What I should have done was taken the time before hand, to create the needed script or tool or means to determine progress, prior to kicking off the process. This is not always an option. Its a good idea though.
Once the process has completed, I want so desperately to spend time writing these scripts or tools. If I can, I will, and save them for the next time. Keeping these tools handy will better allow me to answer these questions next time. Take the time now to better prepare these tools. Do it when your head is clear, and you can write them without the pressure of a running process. Share them with others, coworkers and the SQL community.
Ideas
backups, native and 3rd party
bcp or bulk insert processes
dts/ssis packages and its steps
reindexing scripts
attaching/restoring database
These are the ones that appear on the tip of my tongue. You will have others that ring a bell for you. Identify them now. Come up with the tools to answer that burning question, 'Are we there yet?'
Wednesday, April 22, 2009
Release Management - how do you do it?
I've been in different IT shops with many different ways of releasing code to the database. Some have been very loose in their security and processes. Simply pushing code thru a sql tool straight into production, without even testing it in other environments. Sometimes it was written by the DBA or by a developer.
Other IT shops have had much more strict release management processes. Change control boards meet to discuss the changes and approve or disapprove of them. Actions occur based on these decisions.
Still other IT shops have had many layers of systems in the which sql code was released, tested, approved. Different groups pushing code to different servers along the way. Production pushes being the most complex, with a lot of people involved on conference calls to ensure proper execution of planned steps.
I have heard of the perfect world, where everything had been taken care of for us, and at the push of a button, code is released in a controlled fashion, with no problems whatsoever. none of us live there. So lets talk about the world we live in.
For production releases, we have instituted a process that forces as little human interactions with the code as possible. A tool had been created that executes the sql code. This code is stored in a source control system. There is a single document that describes the actual files to be pushed, with filenames. The files are all listed out in this file, within specific groupings and the tool can parse this data and manage it for us. We simply load a production file, and the tool pulls in all the needed files. We can select specific ones to be released, or release them all at once. We simply indicate the server to be released too, and hit a button.
This sounds easy, but it still has some complexities. With certain types of code that will be pushed, we have to do it in a specific fashion. For example, data that needs to be released should only go to certain servers. Pushing ad-hoc sql is not allowed. We've instituted a process for data changes to be included in a stored procedure. This proc is released, executed and dropped. I know what you are thinking, isn't this the same as a human executing the sql? Remember, this is one of the goals, removing the human interactions. The old way we'd do it was to execute the code in a sql tool. But we could select the wrong portion of code, or miss typed the proc name we released, or even put in the wrong parameters.
So, putting the SQL into a tool that performs the action removes that human interactions, the possibility of the DBA miss selecting portions of code. Putting the SQL code into a proc, releasing this to the appropriate database, executing it and dropping it, all from the release tool, makes it even more removed from the human interactions. By forcing this release to be performed and tested in multiple environments prior to production, we can be ensured that it should succeed, in production.
So far, so good. We've been able to successfully release code into all environments in the fashion with few goofups. Where previously we had instances that we executed code in a tool and caused issues. Performing a release is stressful enough. Why introduce more layers of problems with possible code issues.
Well, like it or not, thats the process we are supporting currently. There are parts i like about it, and parts i would like to alter, enhance, and so on. What I'd like to know is how others do their code pushes, mainly to production. Specifically, how you release data changes. There are few permutations to releasing a schema change, new objects, or security. Those are fairly cut and dried. But how we push data changes, I;d like to know how you do it.
Comment on your process, what you like, what you dislike, how you would do it in a perfect world. Lets all learn from each other.
Other IT shops have had much more strict release management processes. Change control boards meet to discuss the changes and approve or disapprove of them. Actions occur based on these decisions.
Still other IT shops have had many layers of systems in the which sql code was released, tested, approved. Different groups pushing code to different servers along the way. Production pushes being the most complex, with a lot of people involved on conference calls to ensure proper execution of planned steps.
I have heard of the perfect world, where everything had been taken care of for us, and at the push of a button, code is released in a controlled fashion, with no problems whatsoever. none of us live there. So lets talk about the world we live in.
For production releases, we have instituted a process that forces as little human interactions with the code as possible. A tool had been created that executes the sql code. This code is stored in a source control system. There is a single document that describes the actual files to be pushed, with filenames. The files are all listed out in this file, within specific groupings and the tool can parse this data and manage it for us. We simply load a production file, and the tool pulls in all the needed files. We can select specific ones to be released, or release them all at once. We simply indicate the server to be released too, and hit a button.
This sounds easy, but it still has some complexities. With certain types of code that will be pushed, we have to do it in a specific fashion. For example, data that needs to be released should only go to certain servers. Pushing ad-hoc sql is not allowed. We've instituted a process for data changes to be included in a stored procedure. This proc is released, executed and dropped. I know what you are thinking, isn't this the same as a human executing the sql? Remember, this is one of the goals, removing the human interactions. The old way we'd do it was to execute the code in a sql tool. But we could select the wrong portion of code, or miss typed the proc name we released, or even put in the wrong parameters.
So, putting the SQL into a tool that performs the action removes that human interactions, the possibility of the DBA miss selecting portions of code. Putting the SQL code into a proc, releasing this to the appropriate database, executing it and dropping it, all from the release tool, makes it even more removed from the human interactions. By forcing this release to be performed and tested in multiple environments prior to production, we can be ensured that it should succeed, in production.
So far, so good. We've been able to successfully release code into all environments in the fashion with few goofups. Where previously we had instances that we executed code in a tool and caused issues. Performing a release is stressful enough. Why introduce more layers of problems with possible code issues.
Well, like it or not, thats the process we are supporting currently. There are parts i like about it, and parts i would like to alter, enhance, and so on. What I'd like to know is how others do their code pushes, mainly to production. Specifically, how you release data changes. There are few permutations to releasing a schema change, new objects, or security. Those are fairly cut and dried. But how we push data changes, I;d like to know how you do it.
Comment on your process, what you like, what you dislike, how you would do it in a perfect world. Lets all learn from each other.
Wednesday, April 15, 2009
SQL Quiz : Who has been a great leader in your career and what made them a great leader?
I was tagged by Chris Shaw in his latest SQL Quiz.
As Chris mentioned, great leaders and great managers are not always embodied in the same person. I take this a bit further, and a person may even have flashes of being a great leader or manager or both, and not sustain it. It is difficult to sustain both, but it can be accomplished.
1 bad example was a boss I had recently. His idea was that his people needed training. They needed time set aside for said training. It was understood that you would find the time and get the training you could. This was rather vague and open ended. I completely agree that a company should allow its people receive training, in many different forms, and it should be allowed. The downfall was that no follow through occurred. It would have been better if there was a structure, suggestions, reporting, and so on, on our progress and training. But now. So, that would be an anti-example. But it was headed in the correct direction.
My suggestion here is to create a plan of action to follow through, if this is a goal that you as a manager have. Make it happen. Make it make a difference in the lives of your employees. Not just a 'talk about'.
Let me now give you a good example of a manager and leader. As DBA's, we often work strange hours. This lifestyle is difficult to get used too. I have been in many jobs in IT where I was expected to be in my desk between 8 and 5. If I was not at my desk, it was assumed I was not working. We know that this is not the case, most of the time. This habit was ingrained into me in such a fashion that I had a hard time with a job that required odd hours of work. Some weeks, I would end up working my normal block of 40 hours, only to find that I needed to work 10-20 hours after hours. The expectation that I had was that my boss would somehow 'know' what was going on, and reward me with comp time. As this perceived reward never materialized, I grew increasingly frustrated. This soon became apparent, to my manager. In the best way possible, I would describe my frustrations of how much I was working, how much extra, all the personal events that I was missing, and so on. His response took me off guard. He asked me why I had allowed this to occur. My response to this was, 'what a jerk!' He should have seen how hard I was working and given me that 'reward'. We went on to talk, and I learned some great lessons. He didn't feel that it was his job to ensure that I was not being overworked. He had laid the groundwork of this, set the policies, and expected us to comply. It was within me and under my control to comply and thus, live my work life appropriately.
Granted that this interaction seems short and enlightened here, it was more painful and grueling to work through in my head. The point was he was not only teaching me how to fish, but dumping me on the banks of a river, and letting me do it on my own.
He managed his employees expectations of a work/personal life balance. He lead with example. He expected us to simply comply and have a better life for it.
It has taken some practice, but its a much better life on this side of the fence because of it.
I guess my point here was that a great leader and manager can coexist. They have to see the problems, come up with solutions, continually manage the people until they became habitualized with the new way of doing it, then let them do it on their own. Then he would move onto the next task, and repeat. It has been an interesting journey to watch and travel. Work life balance has improved, moral has improved, quality of work has improved. And its not over. Its a continual battle.
I am tagging the following people.
Kendal Van Dyke (who was tagged by BrentO already)
Pat Wright
Tim Ford
As Chris mentioned, great leaders and great managers are not always embodied in the same person. I take this a bit further, and a person may even have flashes of being a great leader or manager or both, and not sustain it. It is difficult to sustain both, but it can be accomplished.
1 bad example was a boss I had recently. His idea was that his people needed training. They needed time set aside for said training. It was understood that you would find the time and get the training you could. This was rather vague and open ended. I completely agree that a company should allow its people receive training, in many different forms, and it should be allowed. The downfall was that no follow through occurred. It would have been better if there was a structure, suggestions, reporting, and so on, on our progress and training. But now. So, that would be an anti-example. But it was headed in the correct direction.
My suggestion here is to create a plan of action to follow through, if this is a goal that you as a manager have. Make it happen. Make it make a difference in the lives of your employees. Not just a 'talk about'.
Let me now give you a good example of a manager and leader. As DBA's, we often work strange hours. This lifestyle is difficult to get used too. I have been in many jobs in IT where I was expected to be in my desk between 8 and 5. If I was not at my desk, it was assumed I was not working. We know that this is not the case, most of the time. This habit was ingrained into me in such a fashion that I had a hard time with a job that required odd hours of work. Some weeks, I would end up working my normal block of 40 hours, only to find that I needed to work 10-20 hours after hours. The expectation that I had was that my boss would somehow 'know' what was going on, and reward me with comp time. As this perceived reward never materialized, I grew increasingly frustrated. This soon became apparent, to my manager. In the best way possible, I would describe my frustrations of how much I was working, how much extra, all the personal events that I was missing, and so on. His response took me off guard. He asked me why I had allowed this to occur. My response to this was, 'what a jerk!' He should have seen how hard I was working and given me that 'reward'. We went on to talk, and I learned some great lessons. He didn't feel that it was his job to ensure that I was not being overworked. He had laid the groundwork of this, set the policies, and expected us to comply. It was within me and under my control to comply and thus, live my work life appropriately.
Granted that this interaction seems short and enlightened here, it was more painful and grueling to work through in my head. The point was he was not only teaching me how to fish, but dumping me on the banks of a river, and letting me do it on my own.
He managed his employees expectations of a work/personal life balance. He lead with example. He expected us to simply comply and have a better life for it.
It has taken some practice, but its a much better life on this side of the fence because of it.
I guess my point here was that a great leader and manager can coexist. They have to see the problems, come up with solutions, continually manage the people until they became habitualized with the new way of doing it, then let them do it on their own. Then he would move onto the next task, and repeat. It has been an interesting journey to watch and travel. Work life balance has improved, moral has improved, quality of work has improved. And its not over. Its a continual battle.
I am tagging the following people.
Kendal Van Dyke (who was tagged by BrentO already)
Pat Wright
Tim Ford
Tuesday, April 07, 2009
SSWUG Virtual Conference
Yesterday, I had the distinct pleasure and privilege to goto Tucson Arizona and present on some topics for their Virtual Conference occurring in April 22, 23 and 24. Back in December, Chris Shaw contacted me and asked me if I would be interested in speaking for their organizations virtual conference. I was humbled and surprised to be requested. I prepped a bunch of presentation ideas, abstracts, and submitted them to Chris. I had 7 accepted, 4 for the Virtual Conference, and the others for the ITUplink. So, for the past few months, I have been preparing presentations, practicing, adding demos, and trying to perfect them. It does seem that each time I look at a slide deck, I find a way to alter it, perfect it a bit more. At some point, I have too stop editing them, and simply give the presentation.
I had the chance to practice a couple of these on my User Group, and glad that I did. The more practice, the better. I worked out some kinks, and got further ready to present to the larger audience. Even though, while doing it, there is no audience. You have to imagine it. They will be there, but not when you are recording it. Practicing in front of an audience, large or small, really helps. But presenting to no one is useful too. I've presented a few times to a phone. Or a live meeting with no one talking to you or giving feedback. Each type of presentation is unique and rewarding in its own way. But each is very different.
Presenting for the SSWUG organization is in its own sphere, similar to the other ways described, but unique as well. Having to look into a camera, well, thats something that is not normal for the DBA. If anything, I am usually behind the camera in my personal life, taking pictures of my family. I rarely end up in front of the camera. And especially not in front of nice cameras like the ones at Bits on the Wire. And 3 of them. One on the right side, one on the left, and in the far left, another one that is stuck in the corner, and apparently black & white. While you are presenting, and trying to not lean on the table in front of you, and remember where you are supposed to stand, and the fact that you have no audience to give you feedback, you also have to remember which camera to look into. If you forget, the fine folks in the recording booth will flash a light on one of the cameras to remind you which one you should be looking into. In between the two color cameras, there is a screen with a clock. It lets you know how much time you have used. I would end up looking at it on occasion, and out of the corner of my eye, see a flashing blue light reminding me the camera to look at.
I should backup and describe my experience more fully, though not too detailed. Just the highlights. I chose to film on a Monday, so that I didnt eat into too much work time off. I had to fly out Sunday night to ensure that I reached Tucson to film on Monday. I got in late Sunday, went down the stairs of the airport, and was greated by a gentleman that gave me a ride to the hotel. I had secretly hoped I'd see my name on a paper, cause I've never had that happen to me yet. But a paper with Bits on the Wire was close enough. After getting into the hotel, I had some time to chill and get to sleep. Not terribly eventful. The next morning, I had the entire morning to do nothing, as I was to report to the studio around 1pm. Waking up late seems lie a luxury these days, and I took full advantage of that Monday morning. Waking up late, wondering downstairs to get a free breakfast, with no one telling me what to do, seemed like the most glorious of vacations. After eating, I returned to my hotel room and prepped my presentations. As I have mentioned earlier, I kept making more and more changes.
Before I knew it, it was time to shower, grab some food and then meet my ride to the offices. Once there, I was able to meet Stephen Wynkoop and the rest of the crew. Stephen even sat with me and interviewed me for a bit, making me feel like a celebrity he was excited to finally meet, just as I felt it was to meet him, finally. We had a great little discussion, followed by me jumping right into my presentations. After a quick practice start to ensure I knew which camera to look at (I would later forget), we jumped into the real presentations. The first one that I recorded was the most prepared and ready. This was planned by me, so that I could get an easy one under my belt, before struggling a bit on some parts of the other ones. One after another we cranked them out. In between I would grab my BlackBerry, send a quick tweet, and check for missed calls or emails. Just a quick glance, then back to the sessions and onto the next one. Before I knew it, I had finished 4 presentations, taking close to 5 hours of time. Whew. It was pretty intense, pretty enjoyable, pretty wild.
Once it was all over, a euphoria overcame me. I had one of those natural highs for a bit. I tried to sit back at the hotel, but became bored with TV. Hungry. Yeah, thats it. Venturing out into the outside world, I soon found food. At sometime afterwards, I started to come down from my natural high. Work crept into my world at this time, and I spent a few hours connected to work via VPN until it was bed time. Rising early the next day, I went to the airport earlier than i needed too, and awaited my flight. Once on the ground again in SLC, it was back to normal and back to work.
All the while, before, during and after, I tweeted my journey via Ping.fm. Posting went to Facebook as well as LinkedIn and Twitter. People in all those worlds were able to follow my progress and adventure, adding to my trip with their insights and suggestions. I love being alone, yet connected to so many people, all at the same time.
I hope that my sessions prove to be helpful for people, once they are released in the virtual conference. In the meantime, take a peek at what has been posted as a preview of one of my sessions.
I have a discount code for the SSWUG Virtual Conference. You can register for the conference here and make sure you use my code 'SPVTBESP09'.
More information here : http://tjaybelt.blogspot.com/2009/02/sswug-vip-code.html
I had the chance to practice a couple of these on my User Group, and glad that I did. The more practice, the better. I worked out some kinks, and got further ready to present to the larger audience. Even though, while doing it, there is no audience. You have to imagine it. They will be there, but not when you are recording it. Practicing in front of an audience, large or small, really helps. But presenting to no one is useful too. I've presented a few times to a phone. Or a live meeting with no one talking to you or giving feedback. Each type of presentation is unique and rewarding in its own way. But each is very different.
Presenting for the SSWUG organization is in its own sphere, similar to the other ways described, but unique as well. Having to look into a camera, well, thats something that is not normal for the DBA. If anything, I am usually behind the camera in my personal life, taking pictures of my family. I rarely end up in front of the camera. And especially not in front of nice cameras like the ones at Bits on the Wire. And 3 of them. One on the right side, one on the left, and in the far left, another one that is stuck in the corner, and apparently black & white. While you are presenting, and trying to not lean on the table in front of you, and remember where you are supposed to stand, and the fact that you have no audience to give you feedback, you also have to remember which camera to look into. If you forget, the fine folks in the recording booth will flash a light on one of the cameras to remind you which one you should be looking into. In between the two color cameras, there is a screen with a clock. It lets you know how much time you have used. I would end up looking at it on occasion, and out of the corner of my eye, see a flashing blue light reminding me the camera to look at.
I should backup and describe my experience more fully, though not too detailed. Just the highlights. I chose to film on a Monday, so that I didnt eat into too much work time off. I had to fly out Sunday night to ensure that I reached Tucson to film on Monday. I got in late Sunday, went down the stairs of the airport, and was greated by a gentleman that gave me a ride to the hotel. I had secretly hoped I'd see my name on a paper, cause I've never had that happen to me yet. But a paper with Bits on the Wire was close enough. After getting into the hotel, I had some time to chill and get to sleep. Not terribly eventful. The next morning, I had the entire morning to do nothing, as I was to report to the studio around 1pm. Waking up late seems lie a luxury these days, and I took full advantage of that Monday morning. Waking up late, wondering downstairs to get a free breakfast, with no one telling me what to do, seemed like the most glorious of vacations. After eating, I returned to my hotel room and prepped my presentations. As I have mentioned earlier, I kept making more and more changes.
Before I knew it, it was time to shower, grab some food and then meet my ride to the offices. Once there, I was able to meet Stephen Wynkoop and the rest of the crew. Stephen even sat with me and interviewed me for a bit, making me feel like a celebrity he was excited to finally meet, just as I felt it was to meet him, finally. We had a great little discussion, followed by me jumping right into my presentations. After a quick practice start to ensure I knew which camera to look at (I would later forget), we jumped into the real presentations. The first one that I recorded was the most prepared and ready. This was planned by me, so that I could get an easy one under my belt, before struggling a bit on some parts of the other ones. One after another we cranked them out. In between I would grab my BlackBerry, send a quick tweet, and check for missed calls or emails. Just a quick glance, then back to the sessions and onto the next one. Before I knew it, I had finished 4 presentations, taking close to 5 hours of time. Whew. It was pretty intense, pretty enjoyable, pretty wild.
Once it was all over, a euphoria overcame me. I had one of those natural highs for a bit. I tried to sit back at the hotel, but became bored with TV. Hungry. Yeah, thats it. Venturing out into the outside world, I soon found food. At sometime afterwards, I started to come down from my natural high. Work crept into my world at this time, and I spent a few hours connected to work via VPN until it was bed time. Rising early the next day, I went to the airport earlier than i needed too, and awaited my flight. Once on the ground again in SLC, it was back to normal and back to work.
All the while, before, during and after, I tweeted my journey via Ping.fm. Posting went to Facebook as well as LinkedIn and Twitter. People in all those worlds were able to follow my progress and adventure, adding to my trip with their insights and suggestions. I love being alone, yet connected to so many people, all at the same time.
I hope that my sessions prove to be helpful for people, once they are released in the virtual conference. In the meantime, take a peek at what has been posted as a preview of one of my sessions.
I have a discount code for the SSWUG Virtual Conference. You can register for the conference here and make sure you use my code 'SPVTBESP09'.
More information here : http://tjaybelt.blogspot.com/2009/02/sswug-vip-code.html
Sunday, April 05, 2009
Wednesday, April 01, 2009
SQLPASS Auditing & Compliance SIG LiveMeeting
Today, the Auditing & Compliance SIG had our first live meeting event. We held a presentation about Sarbanes-Oxley and the DBA.
Many different topics were presented, with possible solutions provided.
We discussed ways to remedaite the following topics, and how to provide auditable documentation for auditors.
Change Management
Division of duties
Backup and Recovery
Restoration
Data Structure Changes
Back End Database User Access
Database Authentication & Access
Job Monitoring
Data Monitoring Controls
Data Transfer
Physical Access
I felt like it went well, and hopefully helped folks out with their concerns and needs with this topic. A few people asked for the slides or the recording. I hope that it got recorded, but in the short term i have posted the slides here.
When I find out about the recording, I'll post it somewhere we can get to it.
I hope that this is the first of many events that will help us DBA's with Auditing & Compliance.
Many different topics were presented, with possible solutions provided.
We discussed ways to remedaite the following topics, and how to provide auditable documentation for auditors.
Change Management
Division of duties
Backup and Recovery
Restoration
Data Structure Changes
Back End Database User Access
Database Authentication & Access
Job Monitoring
Data Monitoring Controls
Data Transfer
Physical Access
I felt like it went well, and hopefully helped folks out with their concerns and needs with this topic. A few people asked for the slides or the recording. I hope that it got recorded, but in the short term i have posted the slides here.
When I find out about the recording, I'll post it somewhere we can get to it.
I hope that this is the first of many events that will help us DBA's with Auditing & Compliance.
Friday, March 27, 2009
My columns are goofed!!!
I have a table in production and dev environments that is not getting replicated data via GoldenGate replication properly. I have spent the last 2 weeks on and off the phone with support. We have tried this way and that way to get the data to pump from source to destination. All without fail.
2 days ago, the support tech suggested that we create a new table, and map to it on the destination, and see if we can pump the data from source to destination that way. Something had to be wrong with the original destination table. I thought this was an odd test, but in fairness, figured anything is worth trying. I will often do silly things to test that i may not think would or should work, if for no other reason than to eliminate them from the possible choices.
So, I create another table, and setup replication to map to this new table. I update a record, and viola! it worked... Wild. Ok, so what's the difference between these tables? Where are the discrepancies? I start digging in to see whats different, if anything, and find nothing. Other than the table name, i see no obvious differences. There are some constraint names different between them, but thats a SQL naming thing, and can usually be ignored. So, I drop the table, and recreate it with another script. This one from Enterprise Manager (previously created the table with a script from SSMS). Once the table was created, I altered data on the source, expecting to see it flow to the destination, and no. Was denied. Now it wasn't working.
So, I thought I had narrowed it down to something. Different tools had created 2 distinct scripts, something had to be different between these two scripts for this new table. So I dropped the table, and recreated it with the original SSMS script, and repeated my steps to update data. Nothing flowed. Now it wasn't working again.
Much to my dissapointment, and the support techs, we didnt know what had caused the 1 instance of success.
Back to the drawing board, which had now become a brick wall, upon which i had bloodied my forehead through repeated banging. None of which seemed to help, but did help me forget my problems for a moment as I furtively impacted my head to wall.
Later that day, the support tech suggested i execute a query to pull some info out about the Identity field. Guess I should explain about the oddness of this table first...
The table has a primary key of UserName, which is a varchar. It also has an ID field in the field list that is an Identity int field. Why this field is not the PK, i do not know. It is the way it is. This seemed to be causing our problems, having an identity field, not the PK, and another the PK. So, when we mapped this with replication, we needed to use KeyCols and include both these fields, to ensure we had unique constraints for GoldenGate replication to properly apply the data.
Ok, back to the query the support tech requested.
select
col.colid,
col.name,
ColumnProperty(col.id, col.name, 'IsIdentity')
from syscolumns col
where col.id = Object_Id('dbo.users')
This was going to prove to them and me, what fields were Identity fields once and for all. This has caused quite a bit of confusion during the process, as we were constantly confused at the UserName being the PK, and having an ID as an Identity.
So, I run the query on dev environment, and give them the results from both the source and destination table. I did this quickly, as I didnt see the need for it, not the interest. I knew and had repeated what the PK was, and what the Identity was, well, repeatedly. Why the support tech was so worried about this, I do not know. But I am happy he was covering all his bases. For out of this query result, we found an interesting thing.
Look back at the query, you'll notice that we return the colid field with each field. Nothing special about this in the query, in fact, it really didnt even need to be there for the purpose of finding the Identity field. But the numbering, the ordering of the results were key. Colid 1 is UserName. This we expected. Its the first column. The second column in the table is FirstName. Its colid should be [2]. It is not!!! It is [3]. From there on out, the number is consistent.
So, in our table of 16 fields, we have colid 1,3-17, missing colid 2 entirely. A quick check show that this is true in dev as well as in production. A quick check of a new table I create shows the colids in order 1-16. I attempt a new test, and sure enough, the data moves to this new table, with the correct colid numbering sequence.
It would appear that GoldenGate replication needs this colid to be in sequence properly to function properly. This one table seems to have been goofed at sometime, colids all out of whack, and this could be the cause for why replication is having a hard time moving data to it.... Yeah!
The story ends here, as this is as far as I have gotten. I actually stopped working on it to document it as it was fresh in my mind. As I find solutions to this issue, I will update this or post another entry to cover it.
Yeah, though. Up until now, we had no idea what was causing our issue. Tons of attempted tests and supposed resolutions have all proved fruitless. Along the way, I have learned a lot of valuable information about the replication system with GoldenGate. I have been able to gain experience with a lot of different aspects of it, so the entire process has been positive, even though frustrating.
Now to figure out how this happened to this table... search for a solution to it, and even investigate other tables, see if they have missing number sequences... maybe other tables are having issues that we do not know about.
2 days ago, the support tech suggested that we create a new table, and map to it on the destination, and see if we can pump the data from source to destination that way. Something had to be wrong with the original destination table. I thought this was an odd test, but in fairness, figured anything is worth trying. I will often do silly things to test that i may not think would or should work, if for no other reason than to eliminate them from the possible choices.
So, I create another table, and setup replication to map to this new table. I update a record, and viola! it worked... Wild. Ok, so what's the difference between these tables? Where are the discrepancies? I start digging in to see whats different, if anything, and find nothing. Other than the table name, i see no obvious differences. There are some constraint names different between them, but thats a SQL naming thing, and can usually be ignored. So, I drop the table, and recreate it with another script. This one from Enterprise Manager (previously created the table with a script from SSMS). Once the table was created, I altered data on the source, expecting to see it flow to the destination, and no. Was denied. Now it wasn't working.
So, I thought I had narrowed it down to something. Different tools had created 2 distinct scripts, something had to be different between these two scripts for this new table. So I dropped the table, and recreated it with the original SSMS script, and repeated my steps to update data. Nothing flowed. Now it wasn't working again.
Much to my dissapointment, and the support techs, we didnt know what had caused the 1 instance of success.
Back to the drawing board, which had now become a brick wall, upon which i had bloodied my forehead through repeated banging. None of which seemed to help, but did help me forget my problems for a moment as I furtively impacted my head to wall.
Later that day, the support tech suggested i execute a query to pull some info out about the Identity field. Guess I should explain about the oddness of this table first...
The table has a primary key of UserName, which is a varchar. It also has an ID field in the field list that is an Identity int field. Why this field is not the PK, i do not know. It is the way it is. This seemed to be causing our problems, having an identity field, not the PK, and another the PK. So, when we mapped this with replication, we needed to use KeyCols and include both these fields, to ensure we had unique constraints for GoldenGate replication to properly apply the data.
Ok, back to the query the support tech requested.
select
col.colid,
col.name,
ColumnProperty(col.id, col.name, 'IsIdentity')
from syscolumns col
where col.id = Object_Id('dbo.users')
This was going to prove to them and me, what fields were Identity fields once and for all. This has caused quite a bit of confusion during the process, as we were constantly confused at the UserName being the PK, and having an ID as an Identity.
So, I run the query on dev environment, and give them the results from both the source and destination table. I did this quickly, as I didnt see the need for it, not the interest. I knew and had repeated what the PK was, and what the Identity was, well, repeatedly. Why the support tech was so worried about this, I do not know. But I am happy he was covering all his bases. For out of this query result, we found an interesting thing.
Look back at the query, you'll notice that we return the colid field with each field. Nothing special about this in the query, in fact, it really didnt even need to be there for the purpose of finding the Identity field. But the numbering, the ordering of the results were key. Colid 1 is UserName. This we expected. Its the first column. The second column in the table is FirstName. Its colid should be [2]. It is not!!! It is [3]. From there on out, the number is consistent.
So, in our table of 16 fields, we have colid 1,3-17, missing colid 2 entirely. A quick check show that this is true in dev as well as in production. A quick check of a new table I create shows the colids in order 1-16. I attempt a new test, and sure enough, the data moves to this new table, with the correct colid numbering sequence.
It would appear that GoldenGate replication needs this colid to be in sequence properly to function properly. This one table seems to have been goofed at sometime, colids all out of whack, and this could be the cause for why replication is having a hard time moving data to it.... Yeah!
The story ends here, as this is as far as I have gotten. I actually stopped working on it to document it as it was fresh in my mind. As I find solutions to this issue, I will update this or post another entry to cover it.
Yeah, though. Up until now, we had no idea what was causing our issue. Tons of attempted tests and supposed resolutions have all proved fruitless. Along the way, I have learned a lot of valuable information about the replication system with GoldenGate. I have been able to gain experience with a lot of different aspects of it, so the entire process has been positive, even though frustrating.
Now to figure out how this happened to this table... search for a solution to it, and even investigate other tables, see if they have missing number sequences... maybe other tables are having issues that we do not know about.
Wednesday, March 25, 2009
Presenting for the Auditing & Compliance SIG
On April 1st at 12PM MST, that’s 11AM to those of you on the West Coast, and 2PM for those on the East Coast, I will be giving a presentation for the Auditing & Compliance SIG about SOX (Sarbanes Oxley), and the DBA perspective.
Many years ago, I was tasked with bring a system into compliance that I was DBA for. We started at scratch, and built up policy, procedure and a few systems to assist us. I later used this knowledge setting up another shot. Now I want to share this with you.
Live Meeting URL: http://www.sqlpass.org/Community/SIGs/AuditingandComplianceSIG/tabid/84/Default.aspx
Audio Dial-In Information:
Conference Dial in: (866) 379-8990
Conference code: 6489756
More information locate on the SIG page:
http://www.sqlpass.org/Events/ctl/ViewEvent/mid/521.aspx?ID=103
A few articles I've written on the subject.
http://www.sql-server-performance.com/articles/audit/Automate_Audit_Requests%20_p1.aspx
http://www.sql-server-performance.com/articles/audit/Audit_Data_Modifications_p1.aspx
http://www.sqlservercentral.com/articles/Auditing/63249/
Many years ago, I was tasked with bring a system into compliance that I was DBA for. We started at scratch, and built up policy, procedure and a few systems to assist us. I later used this knowledge setting up another shot. Now I want to share this with you.
Live Meeting URL: http://www.sqlpass.org/Community/SIGs/AuditingandComplianceSIG/tabid/84/Default.aspx
Audio Dial-In Information:
Conference Dial in: (866) 379-8990
Conference code: 6489756
More information locate on the SIG page:
http://www.sqlpass.org/Events/ctl/ViewEvent/mid/521.aspx?ID=103
A few articles I've written on the subject.
http://www.sql-server-performance.com/articles/audit/Automate_Audit_Requests%20_p1.aspx
http://www.sql-server-performance.com/articles/audit/Audit_Data_Modifications_p1.aspx
http://www.sqlservercentral.com/articles/Auditing/63249/
Friday, March 20, 2009
PASS Call for Speakers Now Open
Hey, is that a bandwagon i see? Wonder if I should hop on? Yeah, it will be a fun ride. I know lots of the guys on there, and it seems they are having fun. So, here I go!!!
I rarely blog these types of infos, since others typically do before me.
But today, i was in a weird mood, and wanted to do a fun blog for a Friday, and this was all i could come up with.
Since others have already done this, i'll just list their blogs, and count them as my own... hehe
http://sqlbatman.com/2009/03/pass-call-for-speakers-now-open/
http://wiseman-wiseguy.blogspot.com/2009/03/pass-summit-2009-call-for-speakers.html
Well, it turns out, thats it. Those are the only ones so far that have blogged about it. Crud, I shoulda jumped on the bandwagon and blogged about it. Wait, thats what I'm doing, but under the disguise that I am doing a funny blog about it, and not actually doing the call for speakers... so, you decide.
I was just bored on a Support call, saw a few tweets come across my screen, and got a funny notion in my head. Its probably only funny to me, but in the end, that all that really matters. Did I make me laugh? If so, blog it. Check and mate.
So, i hit Search.twitter.com and looked for more. I did find more folks talking about it there...
sql_joker: SQL Batman - PASS Call for Speakers Now Open: Did you want to speak at the upcoming PASS 2009 Commun.. http://tinyurl.com/cf3egu (expand)
23 minutes ago from twitterfeed
AndyLeonard: RT @SQLBatman: [Blog] PASS Call for Speakers Now Open:Did you want to speak at the upcoming PASS 2009 Community Summit? http://s3nt.com/d8rb
34 minutes ago from TweetDeck
SQLBatman: [Blog] PASS Call for Speakers Now Open: Did you want to speak at the upcoming PASS 2009 Community Summit? Well, now ... http://s3nt.com/d8rb
36 minutes ago from Ping.fm
unclebiguns: New blog post: http://tinyurl.com/cv4k9e (expand) - PASS Summit 2009 Call for Speakers Open
about 2 hours ago from web
SqlAsylum: RT @sqlpass: PASS Summit 2009 Call For Speakers Opens Friday 3/20 and will close on Friday 4/10. Check out the PASS Home Page for details.
1 day ago from TweetDeck
AndyLeonard: RT @sqlpass: PASSSummit2009 Call For Speakers Opens Friday 3/20 and will close on Friday 4/10.Check out the PASS Home Page for more details.
2 days ago from TweetDeck
BetsyLM: RT @sqlpassPASS Summit 2009 Call For Speakers Opens Friday 3/20 and will close on Friday 4/10. Check out the PASS Home Page for more details
2 days ago from web
sqlpass: PASS Summit 2009 Call For Speakers Opens Friday 3/20 and will close on Friday 4/10. Check out the PASS Home Page for more details.
2 days ago from TinyTwitter
SqlAsylum: RT @sqlpass: PASS Call For Speakers opens 3/20, closing on 4/3! Get your abstracts together folks. it's going to be a great Summit!
7 days ago from TweetDeck
peschkaj: RT @sqlpass: PASS Call For Speakers opens 3/20, closing on 4/3! Get your abstracts together folks.
7 days ago from TweetDeck
statisticsio: Retweeting @sqlpass: PASS Call For Speakers opens 3/20, closing on 4/3! Get your abstracts together folks.
7 days ago from OutTwit
AndyLeonard: RT @sqlpass: PASS Call For Speakers opens 3/20, closing on 4/3! Get your abstracts together folks... it's going to be a great Summit!
7 days ago from TweetDeck
sqlpass: PASS Call For Speakers opens 3/20, closing on 4/3! Get your abstracts together folks. With your help it's going to be a great Summit!
7 days ago from TinyTwitter
So, get out and get your presentations dusted off. Submit them. Prepare yourself for an incredible experience at PASS by becoming a presenter. Its a thrill of a lifetime. Or so i have been told. I'm to scared to do it myself, and who would wanna listen to my half baked ideas anyway. Wait, i should listen to the other advice i just gave, and do it myself. I did submit an abstract a couple years ago... Maybe i still have it somewhere....
I rarely blog these types of infos, since others typically do before me.
But today, i was in a weird mood, and wanted to do a fun blog for a Friday, and this was all i could come up with.
Since others have already done this, i'll just list their blogs, and count them as my own... hehe
http://sqlbatman.com/2009/03/pass-call-for-speakers-now-open/
http://wiseman-wiseguy.blogspot.com/2009/03/pass-summit-2009-call-for-speakers.html
Well, it turns out, thats it. Those are the only ones so far that have blogged about it. Crud, I shoulda jumped on the bandwagon and blogged about it. Wait, thats what I'm doing, but under the disguise that I am doing a funny blog about it, and not actually doing the call for speakers... so, you decide.
I was just bored on a Support call, saw a few tweets come across my screen, and got a funny notion in my head. Its probably only funny to me, but in the end, that all that really matters. Did I make me laugh? If so, blog it. Check and mate.
So, i hit Search.twitter.com and looked for more. I did find more folks talking about it there...
sql_joker: SQL Batman - PASS Call for Speakers Now Open: Did you want to speak at the upcoming PASS 2009 Commun.. http://tinyurl.com/cf3egu (expand)
23 minutes ago from twitterfeed
AndyLeonard: RT @SQLBatman: [Blog] PASS Call for Speakers Now Open:Did you want to speak at the upcoming PASS 2009 Community Summit? http://s3nt.com/d8rb
34 minutes ago from TweetDeck
SQLBatman: [Blog] PASS Call for Speakers Now Open: Did you want to speak at the upcoming PASS 2009 Community Summit? Well, now ... http://s3nt.com/d8rb
36 minutes ago from Ping.fm
unclebiguns: New blog post: http://tinyurl.com/cv4k9e (expand) - PASS Summit 2009 Call for Speakers Open
about 2 hours ago from web
SqlAsylum: RT @sqlpass: PASS Summit 2009 Call For Speakers Opens Friday 3/20 and will close on Friday 4/10. Check out the PASS Home Page for details.
1 day ago from TweetDeck
AndyLeonard: RT @sqlpass: PASSSummit2009 Call For Speakers Opens Friday 3/20 and will close on Friday 4/10.Check out the PASS Home Page for more details.
2 days ago from TweetDeck
BetsyLM: RT @sqlpassPASS Summit 2009 Call For Speakers Opens Friday 3/20 and will close on Friday 4/10. Check out the PASS Home Page for more details
2 days ago from web
sqlpass: PASS Summit 2009 Call For Speakers Opens Friday 3/20 and will close on Friday 4/10. Check out the PASS Home Page for more details.
2 days ago from TinyTwitter
SqlAsylum: RT @sqlpass: PASS Call For Speakers opens 3/20, closing on 4/3! Get your abstracts together folks. it's going to be a great Summit!
7 days ago from TweetDeck
peschkaj: RT @sqlpass: PASS Call For Speakers opens 3/20, closing on 4/3! Get your abstracts together folks.
7 days ago from TweetDeck
statisticsio: Retweeting @sqlpass: PASS Call For Speakers opens 3/20, closing on 4/3! Get your abstracts together folks.
7 days ago from OutTwit
AndyLeonard: RT @sqlpass: PASS Call For Speakers opens 3/20, closing on 4/3! Get your abstracts together folks... it's going to be a great Summit!
7 days ago from TweetDeck
sqlpass: PASS Call For Speakers opens 3/20, closing on 4/3! Get your abstracts together folks. With your help it's going to be a great Summit!
7 days ago from TinyTwitter
So, get out and get your presentations dusted off. Submit them. Prepare yourself for an incredible experience at PASS by becoming a presenter. Its a thrill of a lifetime. Or so i have been told. I'm to scared to do it myself, and who would wanna listen to my half baked ideas anyway. Wait, i should listen to the other advice i just gave, and do it myself. I did submit an abstract a couple years ago... Maybe i still have it somewhere....
Sunday, March 15, 2009
Facebook Tag
I was tagged by my wife on Facebook with another quiz of sorts.
This one just asks questions to get to know you a bit more.
I tend to like these types of quizzes and always fill them out.
http://www.facebook.com/note.php?note_id=57073598859&ref=mf
So, I wanted to stick this one on my blog, in case anyone wanted to know more about me. I also always like to try to apply these to my blog interest here, which is career, writing and SQL Server. So, in the next few days, I hope to find a way to apply this.
I do recall something similar to this that I attempted previously with SQL, and got a bunch of responses from others, of questions to ask. So, maybe i need to find that, and reinvent it, now that the thought has crossed my head again.
This one just asks questions to get to know you a bit more.
I tend to like these types of quizzes and always fill them out.
http://www.facebook.com/note.php?note_id=57073598859&ref=mf
So, I wanted to stick this one on my blog, in case anyone wanted to know more about me. I also always like to try to apply these to my blog interest here, which is career, writing and SQL Server. So, in the next few days, I hope to find a way to apply this.
I do recall something similar to this that I attempted previously with SQL, and got a bunch of responses from others, of questions to ask. So, maybe i need to find that, and reinvent it, now that the thought has crossed my head again.
Friday, March 06, 2009
My Twitter Roll
Since I have seen people doing #FollowFridays via twitter, and listing out the folks that they are following, I thought i would do the same.
However, since twitter only allows 140 chars at a time, that is much to small for a list. My next thought was too pull all the tweeps that i do follow into a list, and categorize it. Why not post it to my blog? Yeah, i thought it was a great idea too. :)
SQLPASS Tweeps (tweeps i know from PASS)
-----------------------------
@sqlpass / PASS
@kekline / Kevin Kline
@SQLBoyWonder / Chuck Heinzelman
@mike_walsh
@NeilDavidson / Neil Davidson
@SQLDBA / Kendal Van Dyke
@SDyckes / Stephen Dyckes
@RachelHawley
@simon_sabin / Simon Sabin
@marcbeacom / Marc Beacom
@jmkehayias / Jonathan Kehayias
@wendy_dance / Wendy Pastrick
@sqlfool / Michelle Ufford
@billgraziano / Bill Graziano
@dbaduck / Ben Miller
@lyndarab
@Kevin3NF
@Bugboi
@blythemorrow
@sqlinsaneo
@SqlAsylum
@GFritchey / Grant Fritchey
@Peter_Shire / Peter Shire
@jessicammoss / Jessica M. Moss
@AaronBertrand / Aaron Bertrand
@debettap / Peter DeBetta
@donalddotfarmer / Donald Farmer
@peschkaj / Jeremiah Peschka
@brianknight
@sqlgirl / Mindy
@joewebb / Joe Webb
@SQLShaw
@douglasmcdowell
@stuarta / Stuart R Ainsworth
@DevSQL / Todd Robinson
@auntkathi
@SQLBatman
@JeffWharton / Jeff Wharton
@BrentO / Brent Ozar
@TimFord
@SQLDiva / Melissa Demsak
@AndyLeonard
@rushabhmehta / Rushabh Mehta
@way0utwest / Steve Jones
@sqlagentman / Tim Ford
@statisticsio / Jason Massie
@greglow / Greg Low
@wardy / Peter Ward
@PaulNielsen
@bradmcgehee / Brad M McGehee
@drsql / Louis Davidson
SQL Tweeps
-----------------------------
@alibro / Ali Brooks
@kekline / Kevin Kline
@SQLBoyWonder / Chuck Heinzelman
@lotsahelp / Eric Humphrey
@SQLCraftsman / Geoff Hiten
@camassey / Chris Massey
@carpdeus
@Adam_Godfrey / Adam Godfrey
@mike_walsh
@rhyscampbell / Rhys Campbell
@whimsql / WhimSQL
@Tim_Mitchell / Tim Mitchell
@NeilDavidson / Neil Davidson
@BenchmarkIT / Colin Stasiuk
@SQLDBA / Kendal Van Dyke
@SDyckes / Stephen Dyckes
@RachelHawley
@simon_sabin / Simon Sabin
@h4ppyd4y / Jason Strate
@marcbeacom / Marc Beacom
@coffegrl
@jmkehayias / Jonathan Kehayias
@wendy_dance / Wendy Pastrick
@BetsyLM / Betsy Mendenhall
@mrdenny
@unclebiguns / Jack Corbett
@SQLServerLog / Neil Watkins
@SQLSocialite / Scott Stauffer
@sqlfool / Michelle Ufford
@ilkirk
@billgraziano / Bill Graziano
@dbaduck / Ben Miller
@lyndarab
@Kevin3NF
@Bugboi
@blythemorrow
@sqlinsaneo
@jcumberland / Jason Cumberland
@sstranger / Stefan Stranger
@DamonRipper / Damon Clark
@sh3n3rd / Mitsi McKee
@SqlAsylum
@GFritchey / Grant Fritchey
@Peter_Shire / Peter Shire
@RobPaller / Rob Paller
@alangham / Arthur
@jessicammoss / Jessica M. Moss
@AaronBertrand / Aaron Bertrand
@Phil_Factor
@debettap / Peter DeBetta
@wharrislv
@dfravel / Dave Fravel
@Andrew_Pfeiffer
@jmarx / Jeremy
@JamesMarsh / James Marsh
@donalddotfarmer / Donald Farmer
@peschkaj / Jeremiah Peschka
@plevexier
@brianknight
@sqlgirl / Mindy
@joewebb / Joe Webb
@SQLShaw
@swynk
@douglasmcdowell
@russjohnson / Russ Johnson
@Vendoran
@alent1234
@stuarta / Stuart R Ainsworth
@DevSQL / Todd Robinson
@auntkathi
@MisterDBA
@SQLBatman
@ocjames / James Cornell
@wendyneu
@rob_farley / Rob Farley
@JeffWharton / Jeff Wharton
@arcanecode / Arcane Code
@BrentO / Brent Ozar
@TimFord
@SQLDiva / Melissa Demsak
@AndyLeonard
@redondoj / Jose Redondo
@rushabhmehta / Rushabh Mehta
@cfrandall / Chris Randall
@sqlpass / PASS
@way0utwest / Steve Jones
@kbriankelley / K. Brian Kelley
@sqlagentman / Tim Ford
@hallidayd / Dan Halliday
@statisticsio / Jason Massie
@mistersql
@greglow / Greg Low
@DenisGobo / Denis Gobo
@larsra / Lars Rasmussen
@wardy / Peter Ward
@PaulNielsen
@bradmcgehee / Brad M McGehee
@drsql / Louis Davidson
SQL Groups / Companies
-----------------------------
@Simple_Talk
@SQLServerCentrl / SQLServerCentral
@redgate
@PerfSig
@sqlteam / SQLTeam.com
@sqlblog / SQLblog
@PASS_UCSSUG
@TulsaSQL
@Quest_SQLServer
SQL Silly Tweeps
-----------------------------
@dbahole
@SQLJackBauer
@SQLAgenthottie
@SQLBatgirl
@SQLDumbass
Companies
-------------------------------------
@Rockler / Rockler Woodworking
@TillamookCheese / Tillamook Cheese
Friends / CoWorkers
------------------------------------
@Emad_ / Emad Sarraj
@marcuslyon / Marcus Lyon
@michellecoon / Michelle Coon
@christyleonard
@michaeldroz / Michael Droz
@VJensen / Valerie Jensen
@ksondere
@Kybug
@bryanschmidty
@atarihomestar
@christybelt
Celebrities / Well known folks
-------------------------------------
@gtdguy / David Allen
@levarburton / LeVar Burton
@BrentSpiner / Brent Spiner
@donttrythis
@roadrider57 / Robin Williams
@wilw / Wil Wheaton
Random interests of mine
-------------------------------------
@Racquetball / Knight Racquetball
@USAALL / USA-ALL
@twit / This Week in Tech
@breakroom
@UtahGov / Utah.gov
@TheRayGroup / Josh Ray
@billgates / Bill Gates
Twitter specific stuffs
-----------------------------
@tweetsql
@MrTweet / Mr Tweet
As you can tell, these will not fit in 140 chars.
I know that there are more people following me than I am following. As a rule, when people start engaging me directly via Twitter on SQL topics, or things I care about, I add them. I rarely seem to get the time to go searching for new tweeps to add. But if you come across my plate and are interesting to me, I will add you. So, as time marches on, I will be adding more folks to follow. And I hope to have a larger list in the future.
I often wish there was a way to data mine twitter, so i could grab everything someone says, and follow their conversations, pulling in what other tweeps say, and following the entire conversation.
Or just a way to catch up on what my favorite tweeps have said.
Maybe someone will write something like that....
However, since twitter only allows 140 chars at a time, that is much to small for a list. My next thought was too pull all the tweeps that i do follow into a list, and categorize it. Why not post it to my blog? Yeah, i thought it was a great idea too. :)
SQLPASS Tweeps (tweeps i know from PASS)
-----------------------------
@sqlpass / PASS
@kekline / Kevin Kline
@SQLBoyWonder / Chuck Heinzelman
@mike_walsh
@NeilDavidson / Neil Davidson
@SQLDBA / Kendal Van Dyke
@SDyckes / Stephen Dyckes
@RachelHawley
@simon_sabin / Simon Sabin
@marcbeacom / Marc Beacom
@jmkehayias / Jonathan Kehayias
@wendy_dance / Wendy Pastrick
@sqlfool / Michelle Ufford
@billgraziano / Bill Graziano
@dbaduck / Ben Miller
@lyndarab
@Kevin3NF
@Bugboi
@blythemorrow
@sqlinsaneo
@SqlAsylum
@GFritchey / Grant Fritchey
@Peter_Shire / Peter Shire
@jessicammoss / Jessica M. Moss
@AaronBertrand / Aaron Bertrand
@debettap / Peter DeBetta
@donalddotfarmer / Donald Farmer
@peschkaj / Jeremiah Peschka
@brianknight
@sqlgirl / Mindy
@joewebb / Joe Webb
@SQLShaw
@douglasmcdowell
@stuarta / Stuart R Ainsworth
@DevSQL / Todd Robinson
@auntkathi
@SQLBatman
@JeffWharton / Jeff Wharton
@BrentO / Brent Ozar
@TimFord
@SQLDiva / Melissa Demsak
@AndyLeonard
@rushabhmehta / Rushabh Mehta
@way0utwest / Steve Jones
@sqlagentman / Tim Ford
@statisticsio / Jason Massie
@greglow / Greg Low
@wardy / Peter Ward
@PaulNielsen
@bradmcgehee / Brad M McGehee
@drsql / Louis Davidson
SQL Tweeps
-----------------------------
@alibro / Ali Brooks
@kekline / Kevin Kline
@SQLBoyWonder / Chuck Heinzelman
@lotsahelp / Eric Humphrey
@SQLCraftsman / Geoff Hiten
@camassey / Chris Massey
@carpdeus
@Adam_Godfrey / Adam Godfrey
@mike_walsh
@rhyscampbell / Rhys Campbell
@whimsql / WhimSQL
@Tim_Mitchell / Tim Mitchell
@NeilDavidson / Neil Davidson
@BenchmarkIT / Colin Stasiuk
@SQLDBA / Kendal Van Dyke
@SDyckes / Stephen Dyckes
@RachelHawley
@simon_sabin / Simon Sabin
@h4ppyd4y / Jason Strate
@marcbeacom / Marc Beacom
@coffegrl
@jmkehayias / Jonathan Kehayias
@wendy_dance / Wendy Pastrick
@BetsyLM / Betsy Mendenhall
@mrdenny
@unclebiguns / Jack Corbett
@SQLServerLog / Neil Watkins
@SQLSocialite / Scott Stauffer
@sqlfool / Michelle Ufford
@ilkirk
@billgraziano / Bill Graziano
@dbaduck / Ben Miller
@lyndarab
@Kevin3NF
@Bugboi
@blythemorrow
@sqlinsaneo
@jcumberland / Jason Cumberland
@sstranger / Stefan Stranger
@DamonRipper / Damon Clark
@sh3n3rd / Mitsi McKee
@SqlAsylum
@GFritchey / Grant Fritchey
@Peter_Shire / Peter Shire
@RobPaller / Rob Paller
@alangham / Arthur
@jessicammoss / Jessica M. Moss
@AaronBertrand / Aaron Bertrand
@Phil_Factor
@debettap / Peter DeBetta
@wharrislv
@dfravel / Dave Fravel
@Andrew_Pfeiffer
@jmarx / Jeremy
@JamesMarsh / James Marsh
@donalddotfarmer / Donald Farmer
@peschkaj / Jeremiah Peschka
@plevexier
@brianknight
@sqlgirl / Mindy
@joewebb / Joe Webb
@SQLShaw
@swynk
@douglasmcdowell
@russjohnson / Russ Johnson
@Vendoran
@alent1234
@stuarta / Stuart R Ainsworth
@DevSQL / Todd Robinson
@auntkathi
@MisterDBA
@SQLBatman
@ocjames / James Cornell
@wendyneu
@rob_farley / Rob Farley
@JeffWharton / Jeff Wharton
@arcanecode / Arcane Code
@BrentO / Brent Ozar
@TimFord
@SQLDiva / Melissa Demsak
@AndyLeonard
@redondoj / Jose Redondo
@rushabhmehta / Rushabh Mehta
@cfrandall / Chris Randall
@sqlpass / PASS
@way0utwest / Steve Jones
@kbriankelley / K. Brian Kelley
@sqlagentman / Tim Ford
@hallidayd / Dan Halliday
@statisticsio / Jason Massie
@mistersql
@greglow / Greg Low
@DenisGobo / Denis Gobo
@larsra / Lars Rasmussen
@wardy / Peter Ward
@PaulNielsen
@bradmcgehee / Brad M McGehee
@drsql / Louis Davidson
SQL Groups / Companies
-----------------------------
@Simple_Talk
@SQLServerCentrl / SQLServerCentral
@redgate
@PerfSig
@sqlteam / SQLTeam.com
@sqlblog / SQLblog
@PASS_UCSSUG
@TulsaSQL
@Quest_SQLServer
SQL Silly Tweeps
-----------------------------
@dbahole
@SQLJackBauer
@SQLAgenthottie
@SQLBatgirl
@SQLDumbass
Companies
-------------------------------------
@Rockler / Rockler Woodworking
@TillamookCheese / Tillamook Cheese
Friends / CoWorkers
------------------------------------
@Emad_ / Emad Sarraj
@marcuslyon / Marcus Lyon
@michellecoon / Michelle Coon
@christyleonard
@michaeldroz / Michael Droz
@VJensen / Valerie Jensen
@ksondere
@Kybug
@bryanschmidty
@atarihomestar
@christybelt
Celebrities / Well known folks
-------------------------------------
@gtdguy / David Allen
@levarburton / LeVar Burton
@BrentSpiner / Brent Spiner
@donttrythis
@roadrider57 / Robin Williams
@wilw / Wil Wheaton
Random interests of mine
-------------------------------------
@Racquetball / Knight Racquetball
@USAALL / USA-ALL
@twit / This Week in Tech
@breakroom
@UtahGov / Utah.gov
@TheRayGroup / Josh Ray
@billgates / Bill Gates
Twitter specific stuffs
-----------------------------
@tweetsql
@MrTweet / Mr Tweet
As you can tell, these will not fit in 140 chars.
I know that there are more people following me than I am following. As a rule, when people start engaging me directly via Twitter on SQL topics, or things I care about, I add them. I rarely seem to get the time to go searching for new tweeps to add. But if you come across my plate and are interesting to me, I will add you. So, as time marches on, I will be adding more folks to follow. And I hope to have a larger list in the future.
I often wish there was a way to data mine twitter, so i could grab everything someone says, and follow their conversations, pulling in what other tweeps say, and following the entire conversation.
Or just a way to catch up on what my favorite tweeps have said.
Maybe someone will write something like that....
Thursday, March 05, 2009
Are You Being Treated Fairly?
Chris Shaw posted a question on his blog and tagged me:
Do you feel like you are being treated fairly at your current or past employers? The question stems from the fact that very few people today stay at a company 20 to 30 years like they did when I was growing up. Do you feel like the company feels a loyalty toward the employee or do you think that they look at you just as head count? No reason to get yourself in trouble, so you can refer back to past employers.
My first job was right out of College. It was kinda a sweatshop for developers. But we were all glad to work nearby the school we had just left. We were all happy to be in the real world. I learned a lot of things at this company. Not all of them good. One of my team leads would typically pack up everything he needed between 430 and 5pm, and sit quietly at his desk. I noticed this once, when I turned around, he was just sitting there, staring at a blank screen. His machine was off. He awaited that 5pm bell; and as soon as he heard it, he stood up, and walked out. This was a habit I learned I didn't want. Amongst all the habits that I learned there, some where good and have helped in my career, but I was fired from that place. Not exactly sure why, but I was. This let me realize that no matter how hard I worked, or how I thought I worked harder than others, I was always expendable.
This has left a rather large scar on me that has been with me for a long time now. I don't know if I will ever truly be rid of it. But from this scar, I have tried to make myself stronger because of it. (did you know that wood that is glued together with a wood glue, is often stronger than the rest of the wood surrounding it). I realize now that no matter what the employer says, it can change at a moments notice. My second job was with a small company, a family run business. My boss once stated that I had a job for life with him. 5 years into working there, this was no longer true. It happened on a Friday afternoon, and I no longer worked there, with very little explanation as to why. I recently ran into him (10 years later) and asked him why. He could not remember. We had a great chat, I got caught up on the company, his family, it was like it was when I worked for him. Cozy, friendly, and familiar. But he had fired me. Was I treated fairly by him? By the company? I did learn a lot there, and some of the skills were used elsewhere to better myself. So, remember, no matter what the employer says, it can change at a moments notice.
This is the same for me. I may be entirely loyal to one employer, and in an instant, this can change. I have to be true to myself. I have to be true to the employer too, but ultimately, I am the only one that truly wants to keep my best interest at heart. For short and hopefully long periods of time, both you and your employer will have your best interest at heart. But this will not be an absolute. So, beware of the signs. Set yourself goals. Realize the direction you want to head. If you and your employer can go there together, than you are truly blessed. If not...
This leads me to another point. I worked for a small group within a large at one time, where I was the most technical person on the team. Since it was a semblance of an IT shop, I stood out with knowledge that most others didn't have. This lead my manager to treat me differently. You would think it would be well, but it wasn't. The helpdesk people were treated often above all else. And this endeared them to the manager. I say 'helpdesk people', not in a derogatory term, but in this case, they were the lowest paid people in the group. I don't expect that since I made more than them, that I should be treated better. What I did expect was that we would all be treated with the same respect, regardless of our position or station. I do not consider myself better than another. Regardless of pay rate, years experience, job title, etc. We are all along this path of life and career, and are at different, rotating stations. One day, I am the noob, the next, I have more experience than most. But in either station, I deserve respect, just like the others on the team do. Long story short, I ended up leaving this job of my own will, because of the lack of respect I received, and lack of growth I currently perceived. In retrospect, I could have sat back, gotten an office, and chilled in this job for many, many years. But it didn't satisfy me. Did they treat me fairly?
So, in this last example, I was the highest paid employee. Yet, I didn't get treated fairly in other areas. In my first job, I didn't get treated fairly in areas other than money; I was a noob and made little money. It's not all about title, money, whether you have an office, and so on. There arealways many facets that make up a job, and you can be treated unfairly in or many of them.
Unfortunately, each time i have felt i have not been treated fairly, I have had to really dig in and look. Sometimes, it is entirely my perception. Other times, its entirely my fault. Other times, it is the employer's fault. But these are rarely absolute across time as well. They peak and valley.
Its important to review your station, position, demeanor, mood and so on, on a regular basis. Not too often, but often enough to make the slight course corrections needed to get back to where you need to be. And realize that no matter what it feels like, it may be your fault. I often wonder why the guy on the road cut me off. But in looking at that statement, I am attributing intent and foreknowledge to a complete stranger. Why would they cut me off? It has nothing to do with me, it just happened. But I feel slighted. This same scenario holds true often in the workplace. You may feel slighted, but are not, its just you think you are. So, be honest with yourself.
Have these little one-on-ones with yourself from time to time, and evaluate your place in life. If its time to move on, then do it. If you can fix some small habits or even large ones, then by all means, work on these and get them fixed. But its rarely as cut and dried as "I'm not being treated fairly". Get all the variables in the open and evaluate them. You may be surprised at what you find out.
Do you feel like you are being treated fairly at your current or past employers? The question stems from the fact that very few people today stay at a company 20 to 30 years like they did when I was growing up. Do you feel like the company feels a loyalty toward the employee or do you think that they look at you just as head count? No reason to get yourself in trouble, so you can refer back to past employers.
My first job was right out of College. It was kinda a sweatshop for developers. But we were all glad to work nearby the school we had just left. We were all happy to be in the real world. I learned a lot of things at this company. Not all of them good. One of my team leads would typically pack up everything he needed between 430 and 5pm, and sit quietly at his desk. I noticed this once, when I turned around, he was just sitting there, staring at a blank screen. His machine was off. He awaited that 5pm bell; and as soon as he heard it, he stood up, and walked out. This was a habit I learned I didn't want. Amongst all the habits that I learned there, some where good and have helped in my career, but I was fired from that place. Not exactly sure why, but I was. This let me realize that no matter how hard I worked, or how I thought I worked harder than others, I was always expendable.
This has left a rather large scar on me that has been with me for a long time now. I don't know if I will ever truly be rid of it. But from this scar, I have tried to make myself stronger because of it. (did you know that wood that is glued together with a wood glue, is often stronger than the rest of the wood surrounding it). I realize now that no matter what the employer says, it can change at a moments notice. My second job was with a small company, a family run business. My boss once stated that I had a job for life with him. 5 years into working there, this was no longer true. It happened on a Friday afternoon, and I no longer worked there, with very little explanation as to why. I recently ran into him (10 years later) and asked him why. He could not remember. We had a great chat, I got caught up on the company, his family, it was like it was when I worked for him. Cozy, friendly, and familiar. But he had fired me. Was I treated fairly by him? By the company? I did learn a lot there, and some of the skills were used elsewhere to better myself. So, remember, no matter what the employer says, it can change at a moments notice.
This is the same for me. I may be entirely loyal to one employer, and in an instant, this can change. I have to be true to myself. I have to be true to the employer too, but ultimately, I am the only one that truly wants to keep my best interest at heart. For short and hopefully long periods of time, both you and your employer will have your best interest at heart. But this will not be an absolute. So, beware of the signs. Set yourself goals. Realize the direction you want to head. If you and your employer can go there together, than you are truly blessed. If not...
This leads me to another point. I worked for a small group within a large at one time, where I was the most technical person on the team. Since it was a semblance of an IT shop, I stood out with knowledge that most others didn't have. This lead my manager to treat me differently. You would think it would be well, but it wasn't. The helpdesk people were treated often above all else. And this endeared them to the manager. I say 'helpdesk people', not in a derogatory term, but in this case, they were the lowest paid people in the group. I don't expect that since I made more than them, that I should be treated better. What I did expect was that we would all be treated with the same respect, regardless of our position or station. I do not consider myself better than another. Regardless of pay rate, years experience, job title, etc. We are all along this path of life and career, and are at different, rotating stations. One day, I am the noob, the next, I have more experience than most. But in either station, I deserve respect, just like the others on the team do. Long story short, I ended up leaving this job of my own will, because of the lack of respect I received, and lack of growth I currently perceived. In retrospect, I could have sat back, gotten an office, and chilled in this job for many, many years. But it didn't satisfy me. Did they treat me fairly?
So, in this last example, I was the highest paid employee. Yet, I didn't get treated fairly in other areas. In my first job, I didn't get treated fairly in areas other than money; I was a noob and made little money. It's not all about title, money, whether you have an office, and so on. There arealways many facets that make up a job, and you can be treated unfairly in or many of them.
Unfortunately, each time i have felt i have not been treated fairly, I have had to really dig in and look. Sometimes, it is entirely my perception. Other times, its entirely my fault. Other times, it is the employer's fault. But these are rarely absolute across time as well. They peak and valley.
Its important to review your station, position, demeanor, mood and so on, on a regular basis. Not too often, but often enough to make the slight course corrections needed to get back to where you need to be. And realize that no matter what it feels like, it may be your fault. I often wonder why the guy on the road cut me off. But in looking at that statement, I am attributing intent and foreknowledge to a complete stranger. Why would they cut me off? It has nothing to do with me, it just happened. But I feel slighted. This same scenario holds true often in the workplace. You may feel slighted, but are not, its just you think you are. So, be honest with yourself.
Have these little one-on-ones with yourself from time to time, and evaluate your place in life. If its time to move on, then do it. If you can fix some small habits or even large ones, then by all means, work on these and get them fixed. But its rarely as cut and dried as "I'm not being treated fairly". Get all the variables in the open and evaluate them. You may be surprised at what you find out.
Saturday, February 28, 2009
Index Maintenance
I'm prepping a presentation for SSWUG on index maintenance. I have had experience with this in most of my jobs. some, I have even had to create systems to perform the maintenance. One such shop was ready to purchase hardware to upgrade their servers, but I started maintaining indexes periodically at night, the worst performing indexes, and it improved performance enough, that we didnt have to upgrade hardware, like they had previously intended. This little system was improved upon over the years, but would basically perform ShowContigs to get the status of indexes, then maintain them as needed.
In my current job, we have the need for maintenance after some ETL processes on a monthly basis. Tonight is one of those nights. After a couple parts of the process have been run, then we have to maintain the indexes. I've written an automated script that helps me out by dumping the results of the ShowContig to a temp table, performss maintenance on the worst performing indexes, and then runs another ShowContig. These results are gathered, and shared with the team to prove that things are in good working order.
Back to the SSWUG presentation. I have a virtual server that i am creating temp data for, so i can show off the steps of this system. I created a table, and was adding random names to cause an index on the names to get out of whack. Initially I found a sql script that had a ton of names in it, that I had used before to create tons of random names. After all that effort, I realized that adding my families names, in order, would produce an fragmented index.
My name is TJay. Starts with 'T'. My wife is named Christy. 'C' is before 'T'. So, alphabetically, these are not in order. Next is Kylie. Then Alyssa. And finally Treyson.
I created a simple table at work. Inserted 100 records for each name, in that order, and check the table afterwards, and its density, as reported by ShowContig, is not near 100, and indicates its out of whack.
I just thought it was pretty cool that the names of my family was in such an order that it could be easily used for a scenario for testing fragmentation. Obviously, its a better test scenario to add tons of distinct names. I just thought it was cool.
In my current job, we have the need for maintenance after some ETL processes on a monthly basis. Tonight is one of those nights. After a couple parts of the process have been run, then we have to maintain the indexes. I've written an automated script that helps me out by dumping the results of the ShowContig to a temp table, performss maintenance on the worst performing indexes, and then runs another ShowContig. These results are gathered, and shared with the team to prove that things are in good working order.
Back to the SSWUG presentation. I have a virtual server that i am creating temp data for, so i can show off the steps of this system. I created a table, and was adding random names to cause an index on the names to get out of whack. Initially I found a sql script that had a ton of names in it, that I had used before to create tons of random names. After all that effort, I realized that adding my families names, in order, would produce an fragmented index.
My name is TJay. Starts with 'T'. My wife is named Christy. 'C' is before 'T'. So, alphabetically, these are not in order. Next is Kylie. Then Alyssa. And finally Treyson.
I created a simple table at work. Inserted 100 records for each name, in that order, and check the table afterwards, and its density, as reported by ShowContig, is not near 100, and indicates its out of whack.
I just thought it was pretty cool that the names of my family was in such an order that it could be easily used for a scenario for testing fragmentation. Obviously, its a better test scenario to add tons of distinct names. I just thought it was cool.
Wednesday, February 18, 2009
Google Analytics
I started blogging back in November of 2008, just prior to the PASS Summit in Seattle. During the summit, I discovered Google Analytics, and applied the code necessary to my blog to allow it to be tracked. Every few days I'll go out and check it out, usually after a blog post. Its interesting to see the progress and see that people are actually hitting my blog. I don't pretend to be very widely read, but I have had a few comments from kind folks that they enjoy my writings. Thats the point of why I blog. To help someone out there with my particular opinion, view, experience. When I am no longer accomplishing this small task, I will cease the activity. Sometimes the person that it truly helps is myself.
So, Google Analytics. I thought it would be interesting to show off a couple images of the dashboard, that were recently snapshotted of my blog.
This first pic is a simple timeline, with the high points being quantity of hits to the blog. Its rather up and down. As expected, most of the down times are on a weekend. However, I've had some weekends with 15-20 hits on them. Odd.
I have had a few peaks, when a particular blog post got a lot of attention. I am grateful for those periods.

The next image shows the timeline, along with some other helpful data, along with a map. This I find fascinating. I've had many hits from Europe, Africa, even 3 from Iran. A lot of hits from USA and Canada, as expected. Its interesting.

In any event, I just wanted to share this interesting information. I do think it would be interesting for others to do the same thing, and report their analytics of their blog. I find it fascinating.
So, Google Analytics. I thought it would be interesting to show off a couple images of the dashboard, that were recently snapshotted of my blog.
This first pic is a simple timeline, with the high points being quantity of hits to the blog. Its rather up and down. As expected, most of the down times are on a weekend. However, I've had some weekends with 15-20 hits on them. Odd.
I have had a few peaks, when a particular blog post got a lot of attention. I am grateful for those periods.

The next image shows the timeline, along with some other helpful data, along with a map. This I find fascinating. I've had many hits from Europe, Africa, even 3 from Iran. A lot of hits from USA and Canada, as expected. Its interesting.

In any event, I just wanted to share this interesting information. I do think it would be interesting for others to do the same thing, and report their analytics of their blog. I find it fascinating.
My First Computer
I was tagged again, this time by Mr Denny who wants me to try to remember my first computer.
My brain went back to my first computer as an adult. I recall having to get a loan from mom and dad to pay for it, as it cost me $3800. I recall that each computer after that purchase dropped half in price. We seemed to get a new computer each time we had a kid too. It just worked out that way. For the kid's first birthday, they would be surrounded by computer parts, and photos were taken. They had no idea, and the family needed a computer. So, we've had 3 kids, and had 4 computers as they were raised. Each kid was about 3 years apart from their siblings, so were our computer upgrades. We finally had to start simply buying new computers, and stop having kids for the last few upgrades.
But that wasnt the point of the blog requested. What was my first computer?
In college, i recall my loving parents sending me to BYU to study Computer Science, and shipping me off with a typewriter. It made an excellent foot rest. When my parents asked if I was using it, I would inevitably reply, 'Every day'. This was true. I often put my feet up on it. I do not think I ever used it. I did purchase an 8088 while in school. Monitor was 2 colors. Off=Black and Purple. We used to do all kinds of crazy things with that machine, like goto bbs's. Wow, we were insane with it... I remember upgrading my modem from a 2400 baud, to 9600, then 14.4. Wow, so fast, what would I do with all that speed.
Wait, that wasn't my first computer either.
Back in the day, I remember my mom, who was a budding romance novel writer, coming home with a computer. An Apple IIe. It lived on our dining room table for the longest time, as an office space did not exist in our home. She had set it up, and was trying to get it useful to writing her books. Later she moved to a Kaypro, as it was easier.
So, I wonder into the dining room one day, see the computer and manuals. I pick up the manual, and start reading. I come across a command 'init home' and attempt it. I figured that this would get the computer thing going and doing stuff. I entered the command, and nothing seemed to happen. The next thing I recall was that feeling i have grown to not be able to live without. That feeling of utter despair that I screwed something up. Nothing was happening on the machine. It just whirred and whirred. I hollered out to my Mom. What did I do? All I did was this command, 'Init Home'. What did that do? Well, it erased the disk that was in the drive. Making it new and shiny. So, my first action on my first computer was to wipe away all its storage.
From there, its been a downhill battle. I still love working with computers. I love using them to solve problems. I love the creative process that is involved with computing. I love to work with databases.
But, from time to time, I get that feeling in my stomach. I retrace my steps. Sure enough, I did another 'Init Home' command.
I’m going to tag Pat Wright, Tim Ford, Louis Davidson
To ensure that this keeps moving, I will contact the above via twitter, so that they can read my blog, and move it along.
My brain went back to my first computer as an adult. I recall having to get a loan from mom and dad to pay for it, as it cost me $3800. I recall that each computer after that purchase dropped half in price. We seemed to get a new computer each time we had a kid too. It just worked out that way. For the kid's first birthday, they would be surrounded by computer parts, and photos were taken. They had no idea, and the family needed a computer. So, we've had 3 kids, and had 4 computers as they were raised. Each kid was about 3 years apart from their siblings, so were our computer upgrades. We finally had to start simply buying new computers, and stop having kids for the last few upgrades.
But that wasnt the point of the blog requested. What was my first computer?
In college, i recall my loving parents sending me to BYU to study Computer Science, and shipping me off with a typewriter. It made an excellent foot rest. When my parents asked if I was using it, I would inevitably reply, 'Every day'. This was true. I often put my feet up on it. I do not think I ever used it. I did purchase an 8088 while in school. Monitor was 2 colors. Off=Black and Purple. We used to do all kinds of crazy things with that machine, like goto bbs's. Wow, we were insane with it... I remember upgrading my modem from a 2400 baud, to 9600, then 14.4. Wow, so fast, what would I do with all that speed.
Wait, that wasn't my first computer either.
Back in the day, I remember my mom, who was a budding romance novel writer, coming home with a computer. An Apple IIe. It lived on our dining room table for the longest time, as an office space did not exist in our home. She had set it up, and was trying to get it useful to writing her books. Later she moved to a Kaypro, as it was easier.
So, I wonder into the dining room one day, see the computer and manuals. I pick up the manual, and start reading. I come across a command 'init home' and attempt it. I figured that this would get the computer thing going and doing stuff. I entered the command, and nothing seemed to happen. The next thing I recall was that feeling i have grown to not be able to live without. That feeling of utter despair that I screwed something up. Nothing was happening on the machine. It just whirred and whirred. I hollered out to my Mom. What did I do? All I did was this command, 'Init Home'. What did that do? Well, it erased the disk that was in the drive. Making it new and shiny. So, my first action on my first computer was to wipe away all its storage.
From there, its been a downhill battle. I still love working with computers. I love using them to solve problems. I love the creative process that is involved with computing. I love to work with databases.
But, from time to time, I get that feeling in my stomach. I retrace my steps. Sure enough, I did another 'Init Home' command.
I’m going to tag Pat Wright, Tim Ford, Louis Davidson
To ensure that this keeps moving, I will contact the above via twitter, so that they can read my blog, and move it along.
Monday, February 16, 2009
SSWUG VIP Code
I have received a discount code for the SSWUG Virtual Conference. You can register for the conference here and make sure you use my code 'SPVTBESP09'.
The discount is for $10 off the registration price of $125, and can be used in conjunction with other discounts, such as the Early Bird ($80).
I have not attended this event in the past, but have heard great things about it. I hope you will think of attending, and learning from some of the greats out there in the SQL Community. And stop by my presentations as well. I hope to help someone out there with my experience.
The discount is for $10 off the registration price of $125, and can be used in conjunction with other discounts, such as the Early Bird ($80).
I have not attended this event in the past, but have heard great things about it. I hope you will think of attending, and learning from some of the greats out there in the SQL Community. And stop by my presentations as well. I hope to help someone out there with my experience.
SSWUG Virtual Conference Presentations
For the first time, i will have the honor of presenting a few topics at the SSWUG Virtual Conference on April 22-24th.
It was suggested by my handler (Chris Shaw) that I submit as many topics as possible, to ensure that I get at least 1 accepted. So, I submitted a slew of them, and had 4 regular sessions accepted, and 3 uplink sessions accepted.
Now, I am going thru them, making sure that they are in a good state to present, and practicing. One of the topics I presented at my UG last month. I will present another one in March.
vConference abstracts
Auditing your Users
Periodically, an auditor would stop by my desk and ask me to show them all the users and their permission’s on a particular database. Most of us know how to do this, and it is easily gathered. Typically, the next question is ‘What has changed?’. After a couple iterations of this, you will realize that you need to devise a way to store this information to adequately respond to this question. A snapshot of the user information needs to be gathered from time to time, and stored. In this presentation, we’ll discuss reasons for storing this information, show code for tables, and explain processes that will enable you to quickly and effectively answer the auditors requests in a consistent and timely manner.
Best Practices
Having worked with databases for some time now, I felt it important to get some best practices documented. This presentation will touch on the simple things that we often take for granted while using our favorite database systems. From naming conventions, to cursors, to temporary, derived and variable tables, to the use of dynamic sql. We’ll touch on a great many different ideas and hopefully further cement your own best practices, making you a more exceptional DBA or Database Developer.
Job execution system
In a production environment, as a DBA protecting the environment, you do not want to give out Admin rights to many, if any individuals in the company. Granting the least possible permissions needed is the desired route. This is a protection for the system you have a responsibility to care for. However, people often need to gain access to perform their job functions. When folks need jobs to be executed outside of the normal execution times, how do we solve this dilemma? This presentation will detail a system that solves this problem.
Monitor Index Fragmentation
As our databases are being used, our index fragmentation can tend to increase. Having an automated system that defrags or removes the fragmentation is necessary. Even a rarely used system will peak the fragmentation with their periodic executions. Keeping track of the level of fragmentation prior to and after fragmentation has been removed will help gather metrics on your systems. Automating this process will relieve pressure on your on-call staff, pressure on your database system, and even increase performance. Let’s discuss ways to accomplish this task.
ITUplink sessions
SQL Server Profiler and Tracing
We have all needed to know what is happening in our database systems. We have often been tasked with finding poor performing queries. Maybe we are being hit with Auditing and Compliance needs. All these and many more issues can be resolved with SQL Server Profiler. Maybe with SQL Server Trace. But which one, and when?
Auditing databases can be tiresome, but a good trace and supporting reports can really help out.
This presentation will show you some of my own ideas, along with others' ideas on best uses for Profiler and Trace.
Once armed with this knowledge, you should be able to take it back to your shops and implement systems that assist you track down these issues more easily.
Auditing & Compliance and the DBA
Sarbanes-Oxley laws are changing the way companies collect, retain, and manage information. Database Administrators need to understand what is happening in the corporate business world, what auditors will be seeking and how it will directly impact their job role. What do auditors want? And how can we help?
This is one DBA’s tale of auditing his databases for modifications. There will be many different ways that you can approach this task, and reach a solution. I will explain how I reached my solution, and give you some good ideas of how to accomplish a similar task, for your own systems.
I am excited to participate in this event. I hope that my sessions go well, are informational, and help people out.
It was suggested by my handler (Chris Shaw) that I submit as many topics as possible, to ensure that I get at least 1 accepted. So, I submitted a slew of them, and had 4 regular sessions accepted, and 3 uplink sessions accepted.
Now, I am going thru them, making sure that they are in a good state to present, and practicing. One of the topics I presented at my UG last month. I will present another one in March.
vConference abstracts
Auditing your Users
Periodically, an auditor would stop by my desk and ask me to show them all the users and their permission’s on a particular database. Most of us know how to do this, and it is easily gathered. Typically, the next question is ‘What has changed?’. After a couple iterations of this, you will realize that you need to devise a way to store this information to adequately respond to this question. A snapshot of the user information needs to be gathered from time to time, and stored. In this presentation, we’ll discuss reasons for storing this information, show code for tables, and explain processes that will enable you to quickly and effectively answer the auditors requests in a consistent and timely manner.
Best Practices
Having worked with databases for some time now, I felt it important to get some best practices documented. This presentation will touch on the simple things that we often take for granted while using our favorite database systems. From naming conventions, to cursors, to temporary, derived and variable tables, to the use of dynamic sql. We’ll touch on a great many different ideas and hopefully further cement your own best practices, making you a more exceptional DBA or Database Developer.
Job execution system
In a production environment, as a DBA protecting the environment, you do not want to give out Admin rights to many, if any individuals in the company. Granting the least possible permissions needed is the desired route. This is a protection for the system you have a responsibility to care for. However, people often need to gain access to perform their job functions. When folks need jobs to be executed outside of the normal execution times, how do we solve this dilemma? This presentation will detail a system that solves this problem.
Monitor Index Fragmentation
As our databases are being used, our index fragmentation can tend to increase. Having an automated system that defrags or removes the fragmentation is necessary. Even a rarely used system will peak the fragmentation with their periodic executions. Keeping track of the level of fragmentation prior to and after fragmentation has been removed will help gather metrics on your systems. Automating this process will relieve pressure on your on-call staff, pressure on your database system, and even increase performance. Let’s discuss ways to accomplish this task.
ITUplink sessions
SQL Server Profiler and Tracing
We have all needed to know what is happening in our database systems. We have often been tasked with finding poor performing queries. Maybe we are being hit with Auditing and Compliance needs. All these and many more issues can be resolved with SQL Server Profiler. Maybe with SQL Server Trace. But which one, and when?
Auditing databases can be tiresome, but a good trace and supporting reports can really help out.
This presentation will show you some of my own ideas, along with others' ideas on best uses for Profiler and Trace.
Once armed with this knowledge, you should be able to take it back to your shops and implement systems that assist you track down these issues more easily.
Auditing & Compliance and the DBA
Sarbanes-Oxley laws are changing the way companies collect, retain, and manage information. Database Administrators need to understand what is happening in the corporate business world, what auditors will be seeking and how it will directly impact their job role. What do auditors want? And how can we help?
This is one DBA’s tale of auditing his databases for modifications. There will be many different ways that you can approach this task, and reach a solution. I will explain how I reached my solution, and give you some good ideas of how to accomplish a similar task, for your own systems.
I am excited to participate in this event. I hope that my sessions go well, are informational, and help people out.
Friday, February 13, 2009
Things I wish I had Known When Starting my IT Career
I was tagged by Tim Mitchell in the latest get-to-know-you question. This one asks, “What do you wish you had known when you started?”
Sometimes I think I may have forgotten more than I have learned. But I always feel like we can learn more and more every day. In fact, its one of my driving forces. I always seem to be trying to learn more things and get the things I learned more perfectly implemented.
Being open to helping
Many moons ago, I was excited to be in the IT industry out of college. I’d imagine with a similar enthusiasm as a fresh IT degree grad. I felt I had a great...
Sometimes I think I may have forgotten more than I have learned. But I always feel like we can learn more and more every day. In fact, its one of my driving forces. I always seem to be trying to learn more things and get the things I learned more perfectly implemented.
Being open to helping
Many moons ago, I was excited to be in the IT industry out of college. I’d imagine with a similar enthusiasm as a fresh IT degree grad. I felt I had a great...
Many moons ago, I was excited to be in the IT industry out of college. I'd imagine with a similar enthusiasm as a fresh IT degree grad. I felt I had a great quantity of knowledge, and often didnt share it with other coworkers. Regardless of the knowledge I may or may not have had, the point here is that I had a hard time sharing it and helping others out. I tended to gaurd the information that I had for job security. Later, I learned, that I needed to be more open with info and share with others. Of course, I often will go to the other extreme and share way too much. Its a fine science to find that middle ground of not being selfish with knowledge, but not overwhelm when not needed.
We all work with people that have a variety of information in their brain stores, and some will appreciate being taught, and others will not. And I need to remember that I too am on that sliding scale, and I need to accept knowledge that I do not currently have.
User Community
I have seen others mention this, and I felt it warranted a mention in my list of things I wish I had known. When I was in college, there was a community of people that were surrounding me, learning, willing to learn, and so on. We all tended to help each other out in class and study sessions. This group effort seemed to buoy us all up a bit more. When I entered the job force, it seemed that I hadto stand on my own. After all, I went to interviews alone. Went to work alone. Granted I had coworkers, but in the end, I felt like I had to stand up and prove my skills. At this point, looking back, I wonder what would have happened had I entered into the SQL Community...
I have benefited so much from attending Community events, and volunteering. Networking is a great benefit, and the knowledge that comes these interactions has added to my own. I suggest to all to partake in this opportunity.
Be yourself
As I am surrounded by people much smarter than myself, I need to remember that I to have a level of smarts. I have different skills that others, and bring different opinions and perspective to the table. Its often difficult to remember that one has a distinct set of skills that others. When you begin to compare yourself to others, you tend to loose yourself and your own skills in the mix.
Remember that you have abilities that others may not have. Expand your knowledge. Learn from others. But do not try to be just like them. Find your own path to SQL Stardom, or wherever your career journey takes you.
These are the first items that pop into my mind that I wish i had known. Most of them are things I am still working on.
I’m going to tag Pat Wright, Tim Ford, Louis Davidson
To ensure that this keeps moving, I will contact the above via twitter, so that they can read my blog, and move it along.
We all work with people that have a variety of information in their brain stores, and some will appreciate being taught, and others will not. And I need to remember that I too am on that sliding scale, and I need to accept knowledge that I do not currently have.
User Community
I have seen others mention this, and I felt it warranted a mention in my list of things I wish I had known. When I was in college, there was a community of people that were surrounding me, learning, willing to learn, and so on. We all tended to help each other out in class and study sessions. This group effort seemed to buoy us all up a bit more. When I entered the job force, it seemed that I hadto stand on my own. After all, I went to interviews alone. Went to work alone. Granted I had coworkers, but in the end, I felt like I had to stand up and prove my skills. At this point, looking back, I wonder what would have happened had I entered into the SQL Community...
I have benefited so much from attending Community events, and volunteering. Networking is a great benefit, and the knowledge that comes these interactions has added to my own. I suggest to all to partake in this opportunity.
Be yourself
As I am surrounded by people much smarter than myself, I need to remember that I to have a level of smarts. I have different skills that others, and bring different opinions and perspective to the table. Its often difficult to remember that one has a distinct set of skills that others. When you begin to compare yourself to others, you tend to loose yourself and your own skills in the mix.
Remember that you have abilities that others may not have. Expand your knowledge. Learn from others. But do not try to be just like them. Find your own path to SQL Stardom, or wherever your career journey takes you.
These are the first items that pop into my mind that I wish i had known. Most of them are things I am still working on.
I’m going to tag Pat Wright, Tim Ford, Louis Davidson
To ensure that this keeps moving, I will contact the above via twitter, so that they can read my blog, and move it along.
Wednesday, February 11, 2009
Twitter Rocks or how Data tweeted me
Today, after lunch, I had the need to do some research on a Replication issue we are facing at work. So, I did a couple google searches. I found my way to BOL from Microsoft on the command, as well as an article on SQL Server Central. Both of which were great assistance to me. However, I had the need to communicate with humans to see their experience. So, I looked at my Instant Messenger, looking for a DBA buddy that has a lot of experience with Replication. He was not online at the moment. So, there I sat, with questions and concerns and no where to turn.
That's when I remembered Twitter. Yeah, I use Twitter a lot. I tell my tweeps that I am at the gym. I tell them some random thoughts as they cross my mind. I recently quoted a U2 song via Twitter. I'll often send out random tweets about random things. But I tend to forget the reason I joined Twitter. It was to link up with fellow DBA's and gain from their experience.
So, I posted the question. Almost immediately I got a couple responses and follow-up questions. A dialogue ensued between a few Tweeps (@SQLFool, @SQLDBA). I was able to glean from their experiences and lend them to my own. This is one of the amazing things that come out of a simple question on Twitter.
Later that night, I was showing this off to my wife, amazed at the power that resides here. Not long after showing off Twitter, I received a random tweet from someone not of the DBA world. A while back, I started following @BrentSpiner and @LevarBurton, from StarTrek fame. It's been interesting to see into the tweets of these celebraties. So, a tweet comes across my screen from @BrentSpiner about work he is doing. I respond with a question. I have responded to tweets from both these folks, but never expected a response. @BrentSpiner has nearly 18000 followers. Since he mentioned working with other folks in show biz, I had asked him what his favorite Celeb encounter was. And he responded. There I sat at home, staring at my computer screen with a tweet from Data from StarTrek. How cool is that? Of course, I could only sit for a bit, before I ran upstairs to tell my wife how cool that was. I'm sure I'll pull this little gem out on various times and show off that @BrentSpiner responded to me.
The best thing about twitter is making connections. Not all the tweeps you follow will talk to you. Just like you will not talk to all the tweeps that follow you. But here and there, a connection will be made. A thought shared. A joke told. And maybe you too will have an encounter that can become a story to tell others. Maybe Twitter will help you out or just raise your mood. I goto bed tonight having spoken to Data from Star Trek. Just once. Briefly. But Twitter Rocks!!
That's when I remembered Twitter. Yeah, I use Twitter a lot. I tell my tweeps that I am at the gym. I tell them some random thoughts as they cross my mind. I recently quoted a U2 song via Twitter. I'll often send out random tweets about random things. But I tend to forget the reason I joined Twitter. It was to link up with fellow DBA's and gain from their experience.
So, I posted the question. Almost immediately I got a couple responses and follow-up questions. A dialogue ensued between a few Tweeps (@SQLFool, @SQLDBA). I was able to glean from their experiences and lend them to my own. This is one of the amazing things that come out of a simple question on Twitter.
Later that night, I was showing this off to my wife, amazed at the power that resides here. Not long after showing off Twitter, I received a random tweet from someone not of the DBA world. A while back, I started following @BrentSpiner and @LevarBurton, from StarTrek fame. It's been interesting to see into the tweets of these celebraties. So, a tweet comes across my screen from @BrentSpiner about work he is doing. I respond with a question. I have responded to tweets from both these folks, but never expected a response. @BrentSpiner has nearly 18000 followers. Since he mentioned working with other folks in show biz, I had asked him what his favorite Celeb encounter was. And he responded. There I sat at home, staring at my computer screen with a tweet from Data from StarTrek. How cool is that? Of course, I could only sit for a bit, before I ran upstairs to tell my wife how cool that was. I'm sure I'll pull this little gem out on various times and show off that @BrentSpiner responded to me.
The best thing about twitter is making connections. Not all the tweeps you follow will talk to you. Just like you will not talk to all the tweeps that follow you. But here and there, a connection will be made. A thought shared. A joke told. And maybe you too will have an encounter that can become a story to tell others. Maybe Twitter will help you out or just raise your mood. I goto bed tonight having spoken to Data from Star Trek. Just once. Briefly. But Twitter Rocks!!
Friday, January 16, 2009
Words Words Words and Wordl
A few folks have been putting up Wordl images about their blogs.
I saw this a while back, and our family put in a bunch of words that were important to us. Goals, interests, and so on. We came up with some interesting word jumbles that described our family. After it was generated, I had no idea what to do with it, but it was sure fun to do anyways.
So, I plugged in my blog to Wordl to see its result. I was expecting to see some words in there that I did not see. And some were more prominent than I expected. Odd. But like any good report, it only shows what it can show. Reality. So, here it is... my blog Wordl representation.
Blog Wordl

So, this got me to thinking, what about twitter? What about my hobby blog? What about my live space that has family trips recorded in it? What about my resume? What about... what other things can we think of that we can use this word jumble on?
Twitter

Hobby Blog

Live Space

Resume

All Articles I've written

Scary stories I wrote the past 2 Halloweens

Google results of searching my name
I saw this a while back, and our family put in a bunch of words that were important to us. Goals, interests, and so on. We came up with some interesting word jumbles that described our family. After it was generated, I had no idea what to do with it, but it was sure fun to do anyways.
So, I plugged in my blog to Wordl to see its result. I was expecting to see some words in there that I did not see. And some were more prominent than I expected. Odd. But like any good report, it only shows what it can show. Reality. So, here it is... my blog Wordl representation.
Blog Wordl

So, this got me to thinking, what about twitter? What about my hobby blog? What about my live space that has family trips recorded in it? What about my resume? What about... what other things can we think of that we can use this word jumble on?

Hobby Blog

Live Space

Resume

All Articles I've written

Scary stories I wrote the past 2 Halloweens

Google results of searching my name
Wednesday, January 14, 2009
How long until the db shrink process is done?
Before I answer that question, I have to give some history with my association with database shrinkage. As a Developer DBA, i often needed to shrink databases. At first i would simply use the GUI. But I often grew impatient at the apparent lack of progress. I would grow ever increasingly uneasy at not knowing what was going on, how long it'd take, etc. As I learned DB skills, I realized that shrinking is not all it cracked up to be, and I often didn't want to shrink the files down. Maybe the log, but leave the mdf alone, and let it stay a size, so it doesnt have to grow next time it needs too. However, in certain situations, it's important to shrink away.
So, I profiled the gui, grabbed the actions performed and made myself a proc. This proc would be used for many years. The proc would not only do the actions for me, if I asked, but it would report to me as well. This became the default execution path; I would run this proc to report the database filenames with the appropriate shrink commands. And then I could pick and choose which ones I wanted to do. Thus allowing myself the ability to do only parts. My unease decreased, and all was happy.
Except that, on occasion, I would still be uneasy, when even one of the simple steps seemed to take longer than expected. I would start to panic. I often imagine rogue processes growing wings, taking on a life of their own, and starting to remove data, corrupt pages, etc. Of course this is only my imagination as I sit and watch the spinning wheel mesmerize me.
So, fast forward to today. A developer comes to me and asks me if his shrink process should take as long as it is taking. Its been running for 30 minutes so far. I sigh, and reply, yeah. Sometimes, it takes days. And all the while, I believe nefarious actions are being taken without my knowledge by this seemingly rogue process. How can I tell how long it should take? Without actually doing it, and remembering? How long should it take? Can it take a long time?
Well, I let him know that it can take a long time, and I have no idea how to check or know. He leaves thinking less of me, I'm sure.
At this point, I turn to the Twitterverse, and posed the question there. A very simple question.
#sqlquiz you are shrinking a database. its taking a while. how do you check progress?
I received quite a few responses. Some folks seemed to think like I did, simply sighing and wishing. However, AaronBertrand responded with this.
@tjaybelt I forget if shrink is one of the tasks that reports percent_complete in sys.dm_exec_requests. Somehow I doubt it.
This spurred others on, and tweeps started trying it out. Success was found, and we had a way to determine the percent complete on the shrinkage. Yeah. Hazzah!
So, when I got back in touch the developer, we tried it, and alas, it reported 86%. Yeah. We knew that it was doing what it had originally set out to do, and was not off removing indexes or truncing tables. It was still doing its shrinkage, just taking a very long time. But hearts were lightened, smiles increased, and laughter soon ensued. We knew! Had numbers!! And with those numbers, could guess execution time to completion.
So, if you read this far, or skipped down, I'll summarize.
To determine the percent complete of an operation, such as shrinking a db, you can use sys.dm_exec_requests to pull this value out, and feel better about everything.
Yeah!!
So, I profiled the gui, grabbed the actions performed and made myself a proc. This proc would be used for many years. The proc would not only do the actions for me, if I asked, but it would report to me as well. This became the default execution path; I would run this proc to report the database filenames with the appropriate shrink commands. And then I could pick and choose which ones I wanted to do. Thus allowing myself the ability to do only parts. My unease decreased, and all was happy.
Except that, on occasion, I would still be uneasy, when even one of the simple steps seemed to take longer than expected. I would start to panic. I often imagine rogue processes growing wings, taking on a life of their own, and starting to remove data, corrupt pages, etc. Of course this is only my imagination as I sit and watch the spinning wheel mesmerize me.
So, fast forward to today. A developer comes to me and asks me if his shrink process should take as long as it is taking. Its been running for 30 minutes so far. I sigh, and reply, yeah. Sometimes, it takes days. And all the while, I believe nefarious actions are being taken without my knowledge by this seemingly rogue process. How can I tell how long it should take? Without actually doing it, and remembering? How long should it take? Can it take a long time?
Well, I let him know that it can take a long time, and I have no idea how to check or know. He leaves thinking less of me, I'm sure.
At this point, I turn to the Twitterverse, and posed the question there. A very simple question.
#sqlquiz you are shrinking a database. its taking a while. how do you check progress?
I received quite a few responses. Some folks seemed to think like I did, simply sighing and wishing. However, AaronBertrand responded with this.
@tjaybelt I forget if shrink is one of the tasks that reports percent_complete in sys.dm_exec_requests. Somehow I doubt it.
This spurred others on, and tweeps started trying it out. Success was found, and we had a way to determine the percent complete on the shrinkage. Yeah. Hazzah!
So, when I got back in touch the developer, we tried it, and alas, it reported 86%. Yeah. We knew that it was doing what it had originally set out to do, and was not off removing indexes or truncing tables. It was still doing its shrinkage, just taking a very long time. But hearts were lightened, smiles increased, and laughter soon ensued. We knew! Had numbers!! And with those numbers, could guess execution time to completion.
So, if you read this far, or skipped down, I'll summarize.
To determine the percent complete of an operation, such as shrinking a db, you can use sys.dm_exec_requests to pull this value out, and feel better about everything.
Yeah!!
Friday, January 09, 2009
So there I am
So there I am, in the middle of some SQL problem. Trying my best to solve it. But it seems to be getting the best of me, when I hear the most unusual noises. The first one sounds like a fire drill noise. Its alarming to me, and I stop working on my problem for a second to orient on the new noise. When, suddenly, it stops. So, back to my problem I go, but for some reason, I can't quite remember what the problem was. Now this is truly odd, as I often have little mental lapses, but not to this degree. Not even being able to remember the issue I was so intent upon only moments ago, seems wrong. At this moment, I realize there is another noise disturbing my calm. It's a dog barking. And not just once in a while, but an almost turrets style stream of canine cacophonies continually spewing forth from his clean mouth. Its almost a constant outcry. On and on he barks. Why won't he shut up?
It's about this time that I realize the SQL problem never really existed, except in the shadowy recesses of my own mind as it had been concocted from my dream state. The reason I must have been struggling with an unseen, undefined SQL problem must have been the result of my mind trying to interpret the inane caterwauling of the neighbors dog into something my dreamed encased brain could understand. Why not an unsolvable, unknown SQL problem?
In any event, I struggled to regain sleep, as almost anything would be a reprieve from the continual noise emitting from next door. But all my attempts were in vain, and I finally arose. As I stumbled around the darkened room, I was increasingly annoyed at the dog, and the loudness of his bewailing the cold while he awaited some human caretaker to let him back into the house. Apparently his only recourse was to attempt communication with the neighbors, as his warden was not giving him any attention or love at the moment, having imprisoned him in the cruel and cold outside world.
I tried to go on with my morning duties, but it was soon apparent that I was not the only one suffering from the boisterous neighbor. All of my family were now up, and the children where asking what was wrong with that dog. Actually it was me, acting like one of the children, begging the only other adult in our home to fix this thing, make it stop, I'm going crazy. So, my good wife picks up the phone, and calls the neighbor to let them know that their dog is trying to gain their attention for something, and could they please attend to its needs? As usual, the neighbor lets us know nicely that it's not their pet that is causing the boisterous commotion. This is the typical response, as their animals never make noise, never invade others property, never use the sandbox as a toilet, and so on.
After the phone call, I asked my wife what had transpired, and while she related the conversation, the dog barking ceased. That was it. No more. We were once again, inside our own home, with our own morning preparation noises to bother us. That, and the voices in my head taunting me with SQL problems I would soon face.
It's about this time that I realize the SQL problem never really existed, except in the shadowy recesses of my own mind as it had been concocted from my dream state. The reason I must have been struggling with an unseen, undefined SQL problem must have been the result of my mind trying to interpret the inane caterwauling of the neighbors dog into something my dreamed encased brain could understand. Why not an unsolvable, unknown SQL problem?
In any event, I struggled to regain sleep, as almost anything would be a reprieve from the continual noise emitting from next door. But all my attempts were in vain, and I finally arose. As I stumbled around the darkened room, I was increasingly annoyed at the dog, and the loudness of his bewailing the cold while he awaited some human caretaker to let him back into the house. Apparently his only recourse was to attempt communication with the neighbors, as his warden was not giving him any attention or love at the moment, having imprisoned him in the cruel and cold outside world.
I tried to go on with my morning duties, but it was soon apparent that I was not the only one suffering from the boisterous neighbor. All of my family were now up, and the children where asking what was wrong with that dog. Actually it was me, acting like one of the children, begging the only other adult in our home to fix this thing, make it stop, I'm going crazy. So, my good wife picks up the phone, and calls the neighbor to let them know that their dog is trying to gain their attention for something, and could they please attend to its needs? As usual, the neighbor lets us know nicely that it's not their pet that is causing the boisterous commotion. This is the typical response, as their animals never make noise, never invade others property, never use the sandbox as a toilet, and so on.
After the phone call, I asked my wife what had transpired, and while she related the conversation, the dog barking ceased. That was it. No more. We were once again, inside our own home, with our own morning preparation noises to bother us. That, and the voices in my head taunting me with SQL problems I would soon face.
Monday, January 05, 2009
Goals Goals Goals
First a recap of last year. I consider last year a banner year in my career advancement and in the community. I met and exceeded a lot of my goals for the year. Others, I didn't do so well. I figured it would be good for my ego to boost it a bit and remind myself what i did accomplish, then list the next set of goals.
Published articles
I was lucky enough to get inspiration a great many times last year, and published articles with
5 articles published to SQL Server Central.
4 articles published to SQL-Server-Performance.
1 article published to Simple-Talk.
1 article published for SQLServerCentral was released in the "Best of SQLServerCentral.com" book this year.
Blogging
Just before the PASS summit of 2008, I started to blog and decided to keep the ball rolling with as much SQL related content as I could muster. I have had quite the surprising interest in the blog, and hope to continue it. To date, I have had 363 visits came from 19 countries/territories to the site. I have been mentioned by other folks in their blogs, and am grateful for it. As the inspiration hits me for items, I will continue to post more. I hope that it can provide a help, in its fashion. I do not consider myself an expert, or that I should be read over anyone else. However, I do have a brain and an insight that may prove useful, and for this purpose, I will continue to produce content.
Speaking
I spoke for the PASS DBA SIG early in the year.
I spoke in brownbag lunch at work.
I spoke at my User Group meetings.
I spoke and help organize 2 CodeCamps.
I spoke and help organize 1 MS Launch event.
Volunteerism
I started up a Special Interest Group with PASS about Auditing and Compliance
I continued to volunteer on the Chapter Committee
I started being a Regional Mentor with PASS
I continued (struggled) to run my local chapter
At PASS, I signed up to a couple volunteer posts
I have spoke and helped run local events
Twitter
On May 13th 2008, I signed up for a Twitter account and started tweeting. My goals here were to talk primarily about SQL stuff. I followed quite a few othe DBA folks out there in the community and soon, it took on a life of its own.
At the PASS summit, there was a huge use for twitter, as i wrote about in my article on Simple-Talk. Before and after, twitter has been a huge help to my career, as well as networking. I have had 150 followers, though some have dropped off from time to time. Over the christmas holiday, I think I gained 30 followers.
So, this avenue for networking has proven worthy of its time and effort. I have forged relationships with many people that I have then been able to use to our mutual advantages.
So, looking back at these things, I have to say I am impressed I was able to accomplish them. A few were not goals, but organic growths on their own that I simply participated in. Writing articles and blogging, these were items I struggled with and tried hard to produce. Luckily I was able to find multiple topics to write about that were interesting to at least a few folks out there.
There have been many personal goals that i accomplished last year that i did not detail here. For example, after tearing my AC joint in my shoulder, I wanted to be able to start exercising it within 1 month, and be back on my dirtbike within a month of that. I accomplished both of these goals. More are to follow as I strengthen it. In my personal life, i have quite a few goals, but let's keep this surrounding SQL and my career path.
Looking forward
1. I want to do more with my local user group.
I have set aside a few months for meetings (we do not meet monthly) and am actively trying to get these organized with content, sponsor and location.
2. Produce presentations.
While at PASS, I set myself a goal to produce 4-6 presentations for the year, with no clear location or event in mind. Simply produce content that can be shared at an event.
3. Speak at SSWUG.
Back in December, I was contacted with a proposal to produce content that may be accepted and used in the next Virtual Conference. This was a huge suprise to me, and I hope that I can not only produce the content, but speak at the event.
4. Perform Regional Mentor Duties.
When I was first assigned to Regional Mentor with PASS, I contacted those User Group leaders under me, and let them know of our goals and my contact info. I have since met and spoke with some at PASS and virtually. I want to better help these individuals with anything they need to keep their User Groups running well.
5. Blog
As the feeling hits me (like now) I want to produce content for my blog that can actually help people. How will this post help folks? Maybe its just meant to help me, and I consider myself part of that group of folks that I intend on helping. Others may find the content useful, and that makes me feel like its not for not. But at the core, I blog because I want to keep a record of things. And I secretly hope that others find it useful too.
6. Articles
As last year has shown me, I can write. I was happy to find this out myself, and am more excited to produce more content. Last year, it seemed easy, because I had specific projects that I could document in the form of an article. Then, when that well ran dry, I had to invent content. This was a tough hump to climb, but I did it. Now I know it can be done, and I want to repeat this as much as possible this year.
7. MVP
I was nominated last year to be an MVP. As another DBA told me, being nominated was a huge step. I was so appreciative of this honor. I did not get awarded the distinction of being an MVP that time around. So, my goal this year is to do what I need too to become nominated again. Since what I ultimately end up doing is judged by a mysterious litmus chart, I do not know if i will ever get the award. So, all I can truly do is do what I do.
As one friend recently said, those that are awarded MVP status deserve it. So, this goal is not to become an MVP, but to be eligible to be nominated.
8. Read
I subscribe to a great many blogs. I want to keep up with them. I am currently about a month behind on a lot of them, and need to close that gap. I would like to have a constant rolling window of only a few weeks of content that I need to read. This means i need to spend more time at nights and on my own after work catching up. I tend to read a little bit during the day at work, but its not enough to clean house. Someday, it would be nice to be at #InboxZero for my blog feeds.
I have lot of other content that I can read as well. Articles published on my favorite sites, books, magazines, etc. I want to read more from these as well. A couple years ago I had a goal of reading an article a night from the "Best of SQLServer Central.com" book that is produced each year. I made it pretty far that year in reading, and got 3/4 of the book read. I would like to do something like that again.
9. Topics
There are quite a few topics that I feel I could know more about with SQL Server. These seem to be on a lazy susan, spinning by me at random moments, to taunt me with the items I have more to learn about. Every once in a while, I want to pull one of these items off of its protected shelf, dig into it, and then permanately place it on another shelf of things I have learned well. I just hope that the last shelf has enough space, and I don't end up moving items between the two locations as I loose knowledge of one, to gain knowledge of another. My HDD seems to be full up these days.
Well, there you have it. A look back, and a look forward. I will have to reference this from time to time to see how I'm doing. After all, metrics need to be gathered, reporting of statuses, etc. Hum, maybe I can devise a database to organize this list, and... ha, there I go on a side project that is not on the list.
So, this reminds me of one that is not on my list.
10. #InboxZero
I want to maintain InboxZero habits, and foster new ones. For both home and work. Becoming more organized will help out tremendously in so many other aspects of my career, life, work, and so on. InboxZero!!!
Published articles
I was lucky enough to get inspiration a great many times last year, and published articles with
5 articles published to SQL Server Central.
4 articles published to SQL-Server-Performance.
1 article published to Simple-Talk.
1 article published for SQLServerCentral was released in the "Best of SQLServerCentral.com" book this year.
Blogging
Just before the PASS summit of 2008, I started to blog and decided to keep the ball rolling with as much SQL related content as I could muster. I have had quite the surprising interest in the blog, and hope to continue it. To date, I have had 363 visits came from 19 countries/territories to the site. I have been mentioned by other folks in their blogs, and am grateful for it. As the inspiration hits me for items, I will continue to post more. I hope that it can provide a help, in its fashion. I do not consider myself an expert, or that I should be read over anyone else. However, I do have a brain and an insight that may prove useful, and for this purpose, I will continue to produce content.
Speaking
I spoke for the PASS DBA SIG early in the year.
I spoke in brownbag lunch at work.
I spoke at my User Group meetings.
I spoke and help organize 2 CodeCamps.
I spoke and help organize 1 MS Launch event.
Volunteerism
I started up a Special Interest Group with PASS about Auditing and Compliance
I continued to volunteer on the Chapter Committee
I started being a Regional Mentor with PASS
I continued (struggled) to run my local chapter
At PASS, I signed up to a couple volunteer posts
I have spoke and helped run local events
On May 13th 2008, I signed up for a Twitter account and started tweeting. My goals here were to talk primarily about SQL stuff. I followed quite a few othe DBA folks out there in the community and soon, it took on a life of its own.
At the PASS summit, there was a huge use for twitter, as i wrote about in my article on Simple-Talk. Before and after, twitter has been a huge help to my career, as well as networking. I have had 150 followers, though some have dropped off from time to time. Over the christmas holiday, I think I gained 30 followers.
So, this avenue for networking has proven worthy of its time and effort. I have forged relationships with many people that I have then been able to use to our mutual advantages.
So, looking back at these things, I have to say I am impressed I was able to accomplish them. A few were not goals, but organic growths on their own that I simply participated in. Writing articles and blogging, these were items I struggled with and tried hard to produce. Luckily I was able to find multiple topics to write about that were interesting to at least a few folks out there.
There have been many personal goals that i accomplished last year that i did not detail here. For example, after tearing my AC joint in my shoulder, I wanted to be able to start exercising it within 1 month, and be back on my dirtbike within a month of that. I accomplished both of these goals. More are to follow as I strengthen it. In my personal life, i have quite a few goals, but let's keep this surrounding SQL and my career path.
Looking forward
1. I want to do more with my local user group.
I have set aside a few months for meetings (we do not meet monthly) and am actively trying to get these organized with content, sponsor and location.
2. Produce presentations.
While at PASS, I set myself a goal to produce 4-6 presentations for the year, with no clear location or event in mind. Simply produce content that can be shared at an event.
3. Speak at SSWUG.
Back in December, I was contacted with a proposal to produce content that may be accepted and used in the next Virtual Conference. This was a huge suprise to me, and I hope that I can not only produce the content, but speak at the event.
4. Perform Regional Mentor Duties.
When I was first assigned to Regional Mentor with PASS, I contacted those User Group leaders under me, and let them know of our goals and my contact info. I have since met and spoke with some at PASS and virtually. I want to better help these individuals with anything they need to keep their User Groups running well.
5. Blog
As the feeling hits me (like now) I want to produce content for my blog that can actually help people. How will this post help folks? Maybe its just meant to help me, and I consider myself part of that group of folks that I intend on helping. Others may find the content useful, and that makes me feel like its not for not. But at the core, I blog because I want to keep a record of things. And I secretly hope that others find it useful too.
6. Articles
As last year has shown me, I can write. I was happy to find this out myself, and am more excited to produce more content. Last year, it seemed easy, because I had specific projects that I could document in the form of an article. Then, when that well ran dry, I had to invent content. This was a tough hump to climb, but I did it. Now I know it can be done, and I want to repeat this as much as possible this year.
7. MVP
I was nominated last year to be an MVP. As another DBA told me, being nominated was a huge step. I was so appreciative of this honor. I did not get awarded the distinction of being an MVP that time around. So, my goal this year is to do what I need too to become nominated again. Since what I ultimately end up doing is judged by a mysterious litmus chart, I do not know if i will ever get the award. So, all I can truly do is do what I do.
As one friend recently said, those that are awarded MVP status deserve it. So, this goal is not to become an MVP, but to be eligible to be nominated.
8. Read
I subscribe to a great many blogs. I want to keep up with them. I am currently about a month behind on a lot of them, and need to close that gap. I would like to have a constant rolling window of only a few weeks of content that I need to read. This means i need to spend more time at nights and on my own after work catching up. I tend to read a little bit during the day at work, but its not enough to clean house. Someday, it would be nice to be at #InboxZero for my blog feeds.
I have lot of other content that I can read as well. Articles published on my favorite sites, books, magazines, etc. I want to read more from these as well. A couple years ago I had a goal of reading an article a night from the "Best of SQLServer Central.com" book that is produced each year. I made it pretty far that year in reading, and got 3/4 of the book read. I would like to do something like that again.
9. Topics
There are quite a few topics that I feel I could know more about with SQL Server. These seem to be on a lazy susan, spinning by me at random moments, to taunt me with the items I have more to learn about. Every once in a while, I want to pull one of these items off of its protected shelf, dig into it, and then permanately place it on another shelf of things I have learned well. I just hope that the last shelf has enough space, and I don't end up moving items between the two locations as I loose knowledge of one, to gain knowledge of another. My HDD seems to be full up these days.
Well, there you have it. A look back, and a look forward. I will have to reference this from time to time to see how I'm doing. After all, metrics need to be gathered, reporting of statuses, etc. Hum, maybe I can devise a database to organize this list, and... ha, there I go on a side project that is not on the list.
So, this reminds me of one that is not on my list.
10. #InboxZero
I want to maintain InboxZero habits, and foster new ones. For both home and work. Becoming more organized will help out tremendously in so many other aspects of my career, life, work, and so on. InboxZero!!!
Subscribe to:
Posts (Atom)