I’ve recently been approached by numerous people at work, on boards, forums, twitter, etc. regarding different ways to learn and improve one’s skill set.
I find myself on forums more so than normal perusing through questions, providing feedback where applicable and so on. Some of the ones I traffic often are:
- SQL Server Central
- The SQL Brit’s Forum
I think forums are a great avenue to see what others are sharing on topics that I might have gone through, are going through, or will go through.
I enjoy reading/following bloggers of who I consider to be at “the top” of the SQL game. I will not list them all out here but if you look to the right you under DBA Blogs you will find additional links of blogs I follow. Over my decade in dealing with SQL I have tried to model and pick up some of the knowledge that they share on a regular basis. Take time to hit some of their sites and remember if you do reach out to one of them I always say be respectful; a lot of their time is providing free knowledge to the community which is what helps make the community grow and be better; be sure to thank them for all they do.
My days normally consist of several hundred emails daily but I try to take a certain part of my day and read the emails I subscribe to; I really enjoy MSSQLTips, SWUGG, the live burn feeds I receive from the bloggers I follow, and several more. Getting involved and subscribing to some of the top tier SQL sites provides another avenue for learning opportunities, networking, etc.
Really depends on what SQL Server versions you are running right now. A lot of people have been asking me about 2008 R2 and for that I liked the DBA Cookbook; felt it had some good stuff in there. Red Gate puts out a lot of good stuff along with the SQL Deep Dive editions.
Some ones that I’ve used or recommended in the past are:
- Pluralsight – I’m a big Paul Randal and Glenn Berry fan so when SQLSkills.com joined it was a no brainer for me.
- SQL Course
- PASS (take advantage of the local chapters and virtual chapters)
I read an article this week by SQL Brit (John Sansom) regarding “Overconfidence – How it Almost Cost Me and What You Can Do to Avoid It”. After reading it I felt like it was one of the better ones I’ve read in the past month. It put things into perspective in a sense that while I’m very confident in my abilities you can never become “lax”. I am a believer in learning everyday and I will continue to hone in on my skillset; at the same time it is imperative that we do not just “assume” or “take for granted” the regular routines we do on a daily basis.
These are some of the things (not all) I like to dig into on a regular basis and I’m sure you have your own; I’d love to hear what others utilize if you have time drop me a line and I’ll share it out on the post so other community members who pass by might be able to gain something from it.
There are many aspects a DBA must handle on a daily, monthly, yearly basis. One that has been sticking out to me in recent weeks is deployment methodologies and the various ones that other people might have in place.
My current process utilizes TFS and RedGate tools. Below is a representation of what a deployment of mine might look like.
- Code is checked in to source control by developer
- A release is created consisting of bugs and tasks within TFS by a release manager
- Once the release is put into place in TFS a comparison with in TFS is completed on the branch or by a label to see what was deployed out to our first landing zone ( a QA environment) from the last deployment
- The latest code is gotten from Red Gate SQL Source Control
- Using Red Gate SQL Compare differences are compared and pushed based on what was scheduled on the release ticket
Now this is just a very high level view without all the intricate workings that are not defined out in this post. I am always looking for ways to improve processes and be as productive as can be. I am curious as to what others might be using or the different methodologies and processes that others in the community use to deploy out to their respective environments.
Fill free to drop me a line or comment.
Sometimes there are instances when I need to drop 6 or 7 databases on my local instance. Currently, I run 3 instances locally, two are for OLTP duties and one is for reporting. One method for dropping the databases that I like is based on just a couple of SQL files and a .bat file. First, I make sure that my replication is turned off on my instances. If replication is not turned off then the below process will error out when trying to drop the database.
SQL FILE CREATION FOR DROPPING AND CREATING THE DATABASES
In my case I need to drop multiple databases so my SQL file resembles:
DROP DATABASE db1
DROP DATABASE db2
DROP DATABASE db3
DROP DATABASE db4
DROP DATABASE db5
DROP DATABASE db6
DROP DATABASE db7
DROP DATABASE db8
Once complete I create a generic directory on my C:\ and saved this file as DropDatabases.sql. The create database script is the same script just replace the drop with the create. Keep in mind on the create database statement you can add more setting defaults to the script but I will not go into those here. You can also tinker around with this script and add some standards such as checking to see if the database exists before dropping and creating etc. This is just an idea up to you on how you use it.
CREATING THE .BAT FILE(s)
I use the sqlcmd utility in my .bat file and make calls to the server instance and specific file. Simply open up a notepad editor and type the following command(s)
sqlcmd -S (local) -i”C:\CI\DropDatabase.sql”
sqlcmd -S (local) -i”C:\CI\CreateDatabase.sql”
Then save the file as DropDatabase.bat and CreateDatabase.bat
The two statements will call either the DropDatabase.sql file or the CreateDatabase.sql file
I believe the SQLCMD utility is a pretty useful tool that I will eventually incorporate into my continuous integration initiatives. For those of you who know me or follow my blog for a long period of time know that I am Red-Gate fan. Because of this I have many useful tools at my disposal and currently am going to set up a form of CI following some of their practices which can be found here
MSDN provides a thorough listing of SQLCMD syntax and variables you can view here
I enjoy trying different ways of doing things that help daily performance initiatives. Hope this helps someone else in the future.