Server consolidation and virtualization with Sql Server 2005

We had a PASS volunteer SIG (Special Interest Group) teleconference today. One item discussed was server consolidation. Microsoft is interested in this area and is seeking input.

During the earlier discussion we had, Bill Wunder and Lynda Rab brought up good points like login transfer, collations, tempdb issues, job management and maintenance, resource allocation, and security management, etc. I will not steal their thunder by repeating what they’ve covered. Here is some of my thoughts after our brief discussion on it over the phone. I sent them to the group but thought I would share that with you, my dear reader:)

1. It will be interesting to compare the scenario of one default instance hosting all databases versus multiple instances hosting their own databases. I guess multiple instances can solve tempdb and collation problems.

For consolidation, the server got to be 64-bit. To avoid a rogue database highjack the whole machine, therefore defeating the purpose of consolidation and increasing risk, it will be interesting to set Max memory for each instance. Or, set a fixed memory size for each instance, depending on what databases each instance has and the total server memory.

In addition, it will be interesting to set CPU affinity. So CPUs are also isolated for each instance. On top of that, each instance will have its own hard disk spindles or SAN LUNs. That will be one way to make sure that one database won’t hog the whole machine.

Having multiple instances also gives one the flexibility to selectively stop and restart one particular instance. Hmmm, now I wonder what kind of machine (CPU, Memory, Storage, Licensing of Sql Server software) we will need to pull this off. In some cases, it may not even be cost-effective. I guess it all depends on how many servers one has and the nature of the applications. The size, cooling, and other infrastructure of your data center also play a role here.

2. I am also intrigued by virtualization. I’d like to know when and how it can be used in a production environment. I’ve been using Virtual PC and installed WinXP and Windows 2003 as guest operating system on top of it. They are all great for experimenting with various test cases and just messing around. It seems to me that virtualization is best suited for testing and learning, not for real production though. I’d like to hear your thoughts and experience on this.

Help on Chinese entry system

I am seeking advice/suggestions on Chinese entry system on English version of Windows XP. I want to do some Chinese post but have been having trouble setting up a good Chinese entry system.

When I was in China last year, one of my college buddies suggested ZiGuang. Somehow I got it to work on my home desktop, with some congifuration troubles. However, I didn’t document the process. Now I will have to set it up again on a different machine.

So, my dear readers who know Chinese, what do you use to enter Chinese? What do you like or not like? Do you know how to setup ZiGuang properly?


My Kinesis Ergo Elan Keyboard

I have had my Kinesis keyboard for over a month now. It is a good time to sum up my experience with it so far.

The model I have is called Ergo Elan with Swedish language layout. Overall, I like this keyboard because of its contoured design. The ergnomic design makes it easier on the hands. That is the main reason I got it in the first place. I figured that I will be spending a significant amount of time of my life in front of a computer. So it is important to have the tools that I feel comfortable with. As a matter of fact, when I use the traditional keyboard at home, I can feel the strain it imposes on my hands and wrists easily.

Another thing I like is the ability to remap keys, customize, and have your own keyboard macro. For example, I have remapped the Caps Lock key to :, since it never got used and I use : a lot because of VI. I also got my own macros going. Below is my mapping:

Caps Lock	: (Mainly for VI)
F6		Ctrl-A Ctrl-C
F7		Ctrl-C
F8		Ctrl-V
F9		Ctrl-T (Firefox new tab and Result in Text in SSMS)
F10		Ctrl-L (Firefox address bar)
F11		Windows key
F12		Ctrl-N (VI completion and Open new document in many apps)
PrintScr	Shift-Del (When I delete, I delete permanently)
ScrLock		Ctrl-A
PasBrk		Ctrl-X

My keyboard also comes with a foot switch. When you press it, by default, it turns on the Keypad, which is really a number pad under your right hand. It allows fast number entry. I don’t use it that much, probably because I am still getting used to it.

I don’t think I can type as fast as I can on a traditional keyboard. But typing productivity lost maybe made up by productivity increase due to the remapped keys and macros. In due time, hopefully my typing speed will increase.

One thing that affects my typing speed is that my desktop is a little too high for me. Therefore, I have to pull up my shoulders, so to speak. I will have an adjustable keyboard tray soon. It will be attached on the down side of the desktop surface. That will put my arms and shoulders in a more natural position. I think that will help my speed and make it less tiresome.

I am thinking of buying another one for home use. If I do, I think I will buy it from eBay. I will probably get it cheaper that way. I bought the one I have now from Kinesis website. It cost more than 300 dollars.

Change SQLCMD default editor

In SQLCMD, if you type ed, it will invoke a text editor and put the last command you run in the editor buffer. The default editor is Edit, a command line editor of DOS.

This behavior is very similar to Oracle Sql Plus, by the way. The difference is that in Sql Plus, you can use / to run the command after you finished editing, whereas in SQLCMD you still need to type go for it, well, to go;)

Anyway, the really neat thing is you can change the default editor to whatever you like. I know many DBAs / developers have their own preferred editors, like Edit Plus, TextPad, or even plain old Notepad. This is exciting because if you work in your favorite editor, you feel you are in control and your productivity increases. For me, I have changed the default editor to VIM, a clone of VI. VI is my favorite editor.

This is how you do it:
1. Open a DOS prompt;
2. Type set sqlcmdeditor=vim, or notepad or whatever;
3. Go to sqlcmd, enter and execute a sql statement, then type ed;
4. Viola, your editor of choice opens. Edit away, after you are done, save and close;

I am very happy to find this feature. It is a real productivity enhancer.