Friday, July 01, 2005

Those dreadful 'Software Patents'

Check out this post by Clemens Vasters

Tetris SAN

Hmmm... we're trying to determine the layout of our development servers databases and files on the new SAN. We have to place 7.5TB for 48 servers in 14GB blocks... it looks a lot like tetris :-D

Thursday, June 30, 2005

AWE 3GB PAE... WTF?

Lately we have been experimenting with the memory options in our tests of a new server. Sometimes it's not quite clear what all those options do, I'll try to give a short and clear description here.

/3GB

Windows normally allows user mode applications to use 2GB of memory. The switch moves the starting point of the kernel to 3GB making it available to user mode applications. Windows 2003 added an extra switch userva to customize the exact amount between 2GB and 3GB. In short this makes it possible for your applications to use 3GB instead of 2GB of memory. Do note that there may be some drawbacks when your server is very powerful. In some cases the server might be able to handle so many threads that it's 1GB of kernel memory is insufficient.

Note Microsoft Product Support Services strongly recommends using a range
of memory for the /USERVA switch that lies within the range of 2800-3030. This
range is wide enough to provide a large enough pool of system page table entries
for all currently observed issues. Usually a setting of /userva=2800 will
provide close to the maximum available number of system page table entries
possible.


PAE (Physical Address Extension)

PAE allows Windows to use more memory than 4GB in combination with AWE

AWE

AWE is an API that enables programs to address more than 4GB (with PAE). It enables them to reserve memory as 'non-paged' memory. This means that memory taken by AWE is never paged to disk until the applications is closed or explicitly frees it.

Wednesday, June 29, 2005

8 Steps to better Transaction Log throughput

For those of you who don't read Kimberly Tripp's blog: check out this great post
And after that add her website to your favorites!

Tuesday, June 28, 2005

New Computer

It's finally time for a new computer. I've got this one for 3 years already and in the geek world that's a mighty long time :-p

This is what I had in mind:

MSI S939 K8N SLI Platinum nForce4UltraSLI 4DCDDR4 2PCI-X Sata 7.1ch FW GLan

AMD Athlon 4200+ 64Bit X2 Dual-Core Processor Socket 939 Boxed with cooler

GEIL Ultra-X Series Dual Channel 1GB 2x512MB PC3200 400MHz Selected 5ns CL 2 5-2-2 GLX1GB3200DC

Western Digital Raptor 74Gb E-Sata 10000rpm 8Mb cache 5,2Mms

Maxtor 300Gb 7200rpm SATA 150 16Mb DiamondMax 10

Gainward PCI-E GT6600GT PowerPack! Ultra/1980PCX TV-DVI 256Mb 2ns DDR3 Fan

Sharkoon Silvation Case - Airflow by included Airtunnel - Alu front panel Screwless - w/o PS

Power Supply 400Watt ATX JJ-400PPGA Silent Intel 2 20/24 pin 8cm SATA - PCI-E Retail + power cable

NEC DVD +R/+-RW ND-3540 Black OEM Dual Layer

DVD LG 8161B 48x16x Tray Blk Black (black or white + black front)

Floppy disk drive Sony 1,44MB Black

A lot of the parts are not available right now so I'll have to wait a while until they are delivered. Finally I will be able to install Windows XP 64 bit, and then probably notice that half my programs no longer work :-s

Any comments on what to buy or not to buy are of course welcome!

Monday, June 27, 2005

Microsoft Update Services

Microsoft has released it's new version of Windows Update.
Not only will it update your Windows but also your Exchange Server, SQL Server, Office, ...

Please check for details as not all versions of the above mentioned products are supported.

Check it out here

BINARY_CHECKSUM AND CHECKSUM

In all the years I've been working with SQL Server I have never seen anyone use these functions.

It's purpose is to build hash indices speeding up queries by matching a 4-byte int instead of a costly character comparison. Especially on large text columns the function can be of use.

For more information check out the BOL.

I'll take the example from BOL (c) Microsoft

-- Create a checksum index.
SET ARITHABORT ON
USE
Northwind
GO
ALTER TABLE Products
ADD cs_Pname AS
checksum(ProductName)
CREATE INDEX Pname_index ON Products (cs_Pname)

/*Use the index in a
SELECT query. Add a second search
condition to
catch stray cases where
checksums match,
but the values are not
identical.*/
SELECT *
FROM Products
WHERE checksum(N'Vegie-spread') =
cs_Pname
AND
ProductName = N'Vegie-spread'
There's also a little brother called CHECKSUM_AGG which returns the checksum of the values in a group. The example in BOL uses it to track changes in data.

SQL Server 2005 System Tables and Views

A nice article about this topic can be found here

Daddy

Since my father is advertising my weblog I feel I should return the favor.
Please visit his website here, although he's from another generation you should really check it out. My parents are quite modern and the website really shows this :-)