Tuesday, March 27, 2007

Parameter-Driven SQL Query from Excel

Private Sub CommandButton1_Click()

Dim TheQuery As QueryTable

Dim TheSheet As Worksheet

Dim FirstLetter As String

Dim RunDate As Date

Dim parm As Parameter

Set TheSheet = ActiveSheet

With TheSheet

FirstLetter = .Range("B1")

RunDate = .Range("B2")

Set TheQuery = .QueryTables(1)

End With

With TheQuery

.Connection = "ODBC;DRIVER=SQL Server;SERVER=(local);UID=(UserID);PWD=(password);DATABASE=(DBname)"

.Parameters.Delete

.CommandText = "EXEC dbo.prc_SelectTest @FirstLetter=?, @RunDate=?"

Set parm = .Parameters.Add("@FirstLetter")

parm.SetParam xlConstant, FirstLetter

Set parm = .Parameters.Add("@RunDate")

parm.SetParam xlConstant, RunDate

.Refresh

End With

End Sub

Saturday, March 24, 2007

Thank you for attending the Microsoft Technical Briefing Event

Hi

Thank you for attending the Microsoft 2007 Technical Briefing Event. We hope that you enjoyed the day and got some insights into the exciting potential of the new and upcoming technologies.

If you would like to review the presentations from the sessions, please visit www.microsoft.co.nz/techbrief following the Christchurch event on 21 March 2007.

Also, don't forget to subscribe to one or both of our New Zealand technical newsletters:

  • MSDN Flash for developers
  • TechNet Flash for IT professionals

These are free, online newsletters which we publish every two weeks. Apart from a wealth of information and links to further resources, they are our main vehicle for connecting with our technical audience and keeping you up to date on local events and initiatives. To subscribe,
please go to www.microsoft.co.nz/subscribe.

Tech Ed 2007

From 13-15 August 2007 we will be holding Tech Ed - Microsoft New Zealand's most comprehensive technical training and educational event of the year. Last year the event sold out with 8 weeks to go and we expect demand to be equally high this year. To guarantee attendance, please register for Tech Ed as soon as possible. Tech Ed 2007 Early Bird Registrations are now open and Early Birds also receive a discount off the full ticket price. For more information and to register, go to www.microsoft.co.nz/teched.

We look forward to seeing you there.

---------------------------------------------------------------------
This email was sent by:
Microsoft New Zealand
22 Viaduct Harbour Street
Auckland 1150, New Zealand
To unsubscribe, reply to this message with the word UNSUBSCRIBE in the Subject line. Please contact us by sending an email to UpToDate@microsoft.com or by writing to The Privacy Officer, Microsoft New Zealand Limited, PO BOX 8070 Symonds Street, Auckland if:

  • You wish to change your contact details
  • You wish to place a written information access request
  • You wish to discuss a privacy concern

Thursday, March 15, 2007

Tools for working with databases

Mike Zeff
Developer Evangelist
Developer & Platform Strategy Group
Microsoft NZ

http://blogs.msdn.com/mikezeff

Or how to make the database guy part of the development team.

Visual Studio Team System

Team Edition for Database Professionals

  • Expand to database teams
  • Manage database change
  • Database Testing
  • Database Deployment

What we heard from customers

(or “why did we build it…”)

  • Managing data base change is hard…
    • A rollback means a LONG night
    • Development teams can end up working with out-of-data versions
    • Finding errors at the end of the development cycle
  • Disconnect between development and database teams

Conceptual Overview

  • Schema change now managed in VS Team System and TFS
  • Production Database is now “One version of the truth” only for Data
  • “One Version of the truth for Schema” is Under Source Control

Creating a Database Project

  • Core concept: offline database development
  • Simply a series of files collected together into a single logical collection
  • The files represent the truth of your schema
  • Can be included in complete solution
  • Can be stored in source control such as Team Foundation Server for versioning
Offline Development
  • Import database schema to populate project from production
  • Nothing changes until deployment
  • A couple of other points, but Mike was too fast


Demo Summary
  • Import schema from existing database
  • Database project is created as a series of .SQL files.
  • Some more, but he’s too fast.

Isolated Iterative Development

Benefits of this Approach
  • Managed, project oriented evolution of database schema
  • Application code and database
  • Too fast
Managing Change
  • Changes are local to the project
  • Project can be compared with database
  • All elements can be managed under version control
  • Template driven
    • Version specific Microsoft SQL Server 2000 or SQL Server 2005
Working with the Project
  • Add new elements
  • Too fast
Refactoring
  • Bring the power of refactoring to SQL
  • Update all dependent objects in a database project
  • Make an atomic change, see preview
  • Rename
Demo Summary
  • All changes occur offline, local to the project
  • Changes can be compared to database
  • Refactoring can update all dependent objects
A Rollback Means a LONG night
  • Unit testing helps ensure that changes do not break existing code
  • Unit test designer is SQL focused
  • Work in the language of your choice: T-SQL, VB, C#
  • Builds on existing Team Test unit Test functionality

What We Can Test

  • Stored Procedures
  • Functions
  • Triggers
  • Arbitrary SQL
  • Too fast
Test Data
  • To create a solid foundation for testing we support data generation
  • Deterministic – always generate
  • Too fast
Demo Summary
  • Use of Regular Expressions to limit generated test data
  • (he couldn’t get the RegEx to validate an email address)
  • Can specify number of rows to generate (up to 1 million?)
  • Can specify ratio of rows to related tables
Build/Deploy
  • Standard Visual Studio build task
    • New versus update builds
    • Project properties for builds
    • Scheme compare for builds
  • Configurations
  • Pre/Post Deployment scripts
  • Build results in SQL script file
  • Deploy
Build Cycle
  • Can also be used in a “continuous” environment

Deployment Summary

  • Deploy using .SQL file
  • Too fast

Additional Resources

  • Team web forum
    • http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=725
  • Team blogs
Call to action
  • Visit the Database Professional Team Centre
  • Watch the on demand web cast series
  • Visit http://www.microsoft.co.nz/visualstudio for special offers on VSTS and VSTE DB Pro
  • Extra credit: install the beta version
  • Too fast


The Future of Data interaction

Problem

Data != Objects

LINQ
  • Fix the impedance mismatch among different data domains
  • Focus on the needs of the application not bridging disparate data representations
  • Build on general purpose language features in C# 3.0 and ????
.NET Language Integrated Query (LINQ)
  • LINQ enabled data sources
  • LINQ enabled ADO.NET
    • LINQ to SQL
    • LINQ to Datasets
    • LINQ to entities
  • LINQ to Objects
  • LINQ to XML
.NET Language Integrated Query framework
  • Too fast
Querying relational data
  • current way (SqlCommand, SqlConnection, DataReader)
  • LINQ way (Define [Table], and use in code as a first-class object).
Call to Action

Extending the Reach of your Applications

Jeremy (Jeremy@mindscape.co.nz) & JD (jd@mindscape.co.nz)

Remoteness…

  • 1990 – MSDOS 6.22
  • 2000 – MS IE 4.0
  • 2007 – Windows Sideshow; Mobile Apps; XBOX; Smart Phones; MS Exchange Server
What has enabled this?
  • Prevalence of Internet
  • Broadband is driving richer experience
  • Users expect to be connected
  • XML standard protocols for exchange of data (RSS, SOAP)
How do you get started?
  • Publish RSS – allow your content to be syndicated
  • Expose Web Services
    • Open (ASP.NET 2.0 or WCF)
    • Secure (WCF)
  • Expose an OpenSearch provider – Let users search directly from their browser
Easy Reach for your applications – Demo
  • RssToolkit.GenericRssChannel
  • OpenSearch
    • Create a Provider.xml which tells OpenSearch where to find the search page.
    • Add a link of application type = OpenSearch/xml
Surfaces
  • Internet – Data (RSS) and Services
  • Platform Services
    • Windows Vista
    • Mobile
    • Media Centre
  • Application Surfaces
    • Microsoft Office 2007
    • SharePoint
Windows Vista Desktop
  • Existing Opportunities – desktop client (Windows Forms)
  • New Opportunities
    • Rich Client (WPF)
    • Mini app (Sidebar Gadget)

Windows Presentation Foundation

  • Unified approach to UI, Documents and Media
  • Integrated, vector-based composition engine
  • Declarative model (XAML)
  • Brings designers and developers together
  • Flexible Deployment
Demo
  • Add a reference to Microsoft Feeds, version 1.0 (COM object)
Vista Sidebar Gadgets
  • Easy to use “mini applications”
  • Designed to be informative or functional
  • Designed to have low intrusion
  • Allows reach for existing applications or services
  • Manifest (XML) to interface (html) to CSS, images, JavaScript to ActiveX and/or XML HTTP request
SharePoint Web Parts
  • Created for SharePoint 2003 (what about Digital Dashboard?)
  • Empower users
  • Great for content delivery
ASP.NET 2.0 Web Parts
  • Web Parts outside SharePoint
  • Even better for content delivery!
Building Web Parts on WSS v3
  • Import System.Web.UI.WebControls.WebParts
  • Add the Web Part Manager
  • Customise Page Button
  • Add Web Part Zones (x2)
  • Add Catalog View
  • Add reference to our Web Part
  • DisplayMode = WebPart.ViewDisplayMode
Call to Action
  • Publish an RSS Feed
  • Publish an OpenSearch provider http://tinyurl.clm/zda68
  • Download and install WSS 3.0 – build a Web Part
  • Build a Sidebar Gadget

Building Composite Applications

Jeremy Boyd

Mindscape

Lots of ground to cover!

New concepts, code!

Look for code, samples and presentation downloads

http://turtle.net.nz/blog/

Jeremy@mindscape.co.nz

Composite Applications

  • The whole is greater than the sum of its parts
  • Composed of a number of discrete and independent pieces, aggregating this functionality through a software interface.
  • Break free from “silo” issues
  • Lower cost of development
  • Consistency
Tradition Applications
  • An encapsulated system providing its own self sufficiency
What’s enabled all this?
  • Services
  • Software over services
    • Lightweight
    • Loosely coupled
    • 3 tier architecture
  • Result: Reuse of software!
Traps to watch for
  • Maturity for integration
    • Must be able to leverage services for direct integration for greatest benefit
  • External Trust
    • External data lives in the cloud
    • Reliance on provider for business operations
Example: Exchange Server 2007 is used by
  • Outlook
  • Outlook Web Access
  • Outlook Voice Access
  • Outlook Mobile
Background Motion
  • Lightweight build: 3 weeks
  • Consumes resources from
    • Flickr
    • Soapbox
    • GeoTagIt
  • Also publishes services and data
Architecture
  • Presentation Layer = ASP.Net 2.0 & AJAX
  • Business Layer = Content Service, controllers & Model
  • Resource Layer = Service Proxies & LINQ to SQL Server
But How?
  • Start with the problem e.g. Provide a community site to provide content for DreamScene
  • Focus on the interface
  • Work out who is already offering functionality
    • Flickr works well for images
    • Soapbox works well for videos
We already had great tools
  • .NET 2.0 and .NET 3.0 Frameworks
  • ASP.Net AJAX
  • Composite Web Block
  • Enterprise Library
  • Don’t forget about 3rd party!
    • RSS Toolkit
    • Lucene.NET
    • 2 way data-binding
Some tips from the Background Motion build
  • WebDataBinder
    • DataBinder.DataBind()
    • DataBinder.Unbind()
  • Microsoft.Practices.EnterpriseLibrary.Validation
    • [RequireValidator]
    • Presenter.Save()


Supervising Controller (MVP)
  • View (GET http://site/pages.aspx)
  • Presenter (View is based on the PageBase class which wires it up to the Presenter)
  • Model (View can work with the Model but calls back to Presenter to perform process flow)
  • “Factor the UI into a view and controller where the view handles simple mapping to the underlying model and the controller handles input response and complex view logic.” Martin Fowlerwww.martinfowler.com
  • Cleanly separates UI process form binding/event logic
  • Improves testability
Dependency Injection
  • Establish a level of abstraction via a public interface, and remove dependency on components by (for example) supplying a plug-in architecture – Wiki
  • Allows for loose coupling
  • Abstraction through interfaces
  • Composite Web Block uses
  • ServiceLocator approach
Service Locators
  • I need an instance of IDataLayer class! (Consumer to Interface)
  • I can ask the ServiceLocator to give me an instance of IDatalayer
  • ServiceLocator holds an instance of Factory <IDataLayer>
  • Factory <IDataLayer> assembles a Concrete class instance
  • Concrete instance is returned to the Consumer
  • Consumer always calls through the IDataLayer interface
So What?
  • Solid foundation leads to flexibility – supports change!
  • Lower development complexity – modularity!
  • Testability of solution
    • More effective integration
    • Shorter cycles
    • Always building working code!
Unit Testing…
  • Create a separate library (project in the solution)
  • NUnit – a free testing framework
  • Define [Test] methods
    • Assert.IsFalse(contribution.ValidationResults.IsValid);
    • (do some work)
    • Assert.IsTrue(contribution.ValidationResults.IsValid);
  • Where might these be useful?
    • When a field length changes, the Unit Test will fail the Validator.
    • Helps save you a lot of time by capturing these types of failures
Continuous Integration
  • Developer checks in to source control
  • The BuildServer monitors the source control
  • The BuildServer builds the application
  • The BuildServer runs the unit tests
  • The BuildServer notifies whether all tests passed
Resources
  • External from this application
    • Active Directory
    • Web Services
    • Legacy System
  • Contract based consumption
    • Loose coupling
    • Flexibility in plug and play
But how?
  • Windows Communication Foundation
  • The Unified Framework for rapidly building service oriented applications
WCF
  • Building block for building Connected Systems
  • Designed around messages!
  • Full standards/specifications support (WS-* oriented)
  • Provide consistent API regardless of messaging requirement
  • Part of .Net 3.0 Framework
Software + Services
  • ASP.NET AJAX. The free framework for quickly creating a new generation of more efficient, more interactive and highly personalized Web experiences
  • Building a mash-up using ASP.NET AJAX
  • Web Service can output AJAX (JavaScript)!
AJAX with Services
  • ASP.Net AJAX allows native call
  • Too fast


Call to Action
  • Read about Patterns
  • Look at Unit Tests and CI http://ccnet.thoughtworks.com
  • Download the Composite Web Block
    • And the Validation Block
    • And the Enterprise Library
  • Publish services in your enterprise to allow composite applications to flourish!

Building Standards Compliant Websites

John-Daniel Trask

Mindscape

What is a Standard?

  • Agreed upon protocols
  • Three types
    • De-facto
    • Industry
    • Government

Importance of Web Standards

  • Ensure durability
  • Ensure accessibility
  • Ensure portability
HTML
  • HTML 4.01
  • Last revision
  • Being superseded by XHTML
CSS
  • Level 1 (CSS 1.0)
  • Level 2 revision 1 (CSS 2.1)
  • Level 3 (under development)
  • Mobile Profile
  • TV Profile
WAI
  • Web Accessibility Initiative
  • Guidelines for
    • Aiding disable audience
    • Aiding agent type support
NZ Standards
Other Standards
  • RSS / ATOM (and icon)
  • SiteMaps
  • OpenSearch
Why Standards Compliance Makes a Difference
  • Acid2 Test
Implications of “no standard”
  • Separate specification class emerges per browser
  • More expensive delivery
  • Frustrates users
  • Hurts adoption
Microsoft and Web Standards
  • Getting better
  • IE7 is a major step forward
  • IE8 under development (Acid2 compliant)
  • Working with other organisations
IE7 Functional Advancements
  • Support for OpenSearch
  • Scaling handled by browser (text and graphics simultaneously)
  • Phishing filter
  • Tabbed browsing
  • RSS platform support
IE7 Rendering Advancements
  • Fixed more than 50 CSS bugs
  • Transparent PNG support
  • Added CSS 2.1 positioning
  • Added CSS 2.1 selector support
Advancements in Tooling
  • Validation added to existing tools
  • CSS Control Adapters for ASP.Net 2.0
  • Plug-ins for Internet Explorer
  • Full new product line…


Expression Web
  • For designers
  • Standards based
  • CSS based layout
  • Strong support for XML and XSLT
  • Direct integration with ASP.Net 2.0
Key Benefits
  • Prevents non-compliant sites
  • Rich CSS designer support
  • No OOTB (out of the box) legacy tags
  • Comprehensive DOCTYPE validation
How to use this stuff…
Visual Studio
  • Orcas, March CTP
  • Richer validation support
  • Link checking
  • Tag structure visualization
  • Web Designer and CSS support baked in Orcas
  • ASP.Net 2.0
ASP.Net 2.0 CSS Control Adapters
  • Demo
Validating your sites
  • Validate online with W3C
  • Validate with tools (e.g. expression ware)
  • Ease validation with browser integration
  • Download http://tinyurl.com/


Checklist for building your site
  • Valid HTML
  • Valid CSS
  • Page weight
  • Screen size, font size
  • Accessibility factors
  • Cross browser checking
Call to Action
  • Validate your sites
  • Grab Expression Web Designer (free 60 day trial)
  • Develop to standards

Welcome to the Microsoft Technical Briefing Sessions

Sean McBreen

Director Developer & Platform Strategy

Microsoft New Zealand

Blogs.msdn.com/smcbreen

People Drive Business Success

(People Ready)

Microsoft’s Promises to You

Enabling IT Pros & Development teams Across the IT Lifecycle

  1. Advance the Business with IT Solutions
  2. Manage Complexity, Achieve Agility
  3. Protect Information, control Access
  4. Amplify the impact of Your People

Infrastructure Optimisation

(People, Process, Technology)

  1. Basic
  2. Standardized
  3. Rationalized
  4. Dynamic

What you can expect to see today

  1. Application Platform Track
  2. Information Worker Track
  3. Infrastructure Track


The wave has arrived

Darryl Burling

Developer and Platform Strategy

Microsoft

http://blogs.msdn.com/darrylburling

Innovation
  1. Improvement e.g. The Ribbon
  2. Creativity
  3. Change
  4. Implementation
  5. Invention

(The above alone do not define innovation) Innovation must give users Value.

Creating Value
  1. Customer (feedback, studies)
  2. Design (creativity, invention)
  3. Development (Implementation)
  4. Release

How do you know?

  1. US$6.2 Billion
  2. Over 3000 Patents

(No)

How do you know?

  1. I want to show you

What Are Customers Saying?

Robin Johansen, CIO, Beca Carter

  1. Windows 2000 has passed its use by date
  2. No compelling case to move to XP
  3. Tested Vista for their environment
  4. Vista adds value to our business


Microsoft SoftGrid
  • A product that can virtualize applications, e.g. Access 2000 and 97 can’t run side-by-side.
  • Bruce Chamberlain, Technology Specialist, Microsoft
  • Isolation with Controlled OS Interaction
  • Applications are virtualised per instance:
    • Files (incl. System Files)
    • Registry
    • Fonts
    • .ini
    • COM objects
    • Services
  • Applications do not get installed or alter the operating system
  • Yet tasks are enabled to complete

3 key areas:

  1. Sequencing: Rapidly packages applications through active watch technology including execution dependencies
  2. Management. Applications delivered by highly scalable infrastructure and assigned by Active Directory. Optional application license enforcement.
  3. Streaming. Delivers application through dynamic streaming protocol and caches for repeat use. Supports disconnected mode.

SoftGrid for Desktop and TS

  1. Applications running remotely within a TS session served by SoftGrid for TS
  2. Application running locally using SoftGrid Desktop client


Managing Growth Using a Modern Programming Model

Bohdan Szymanik

Enterprise Architecture Manager

Kiwibank

Kiwibank

  • 9 months to get original package running
  • Opened doors Feb 2002
  • Today 500,00+ customers
  • $3.1 billion lending
  • $3 billion deposits
  • 6 month profit $11 million
  • Full service retail bank
  • Growth has exceeded original expectations

Integration Challenge

  • Original application package did not meet all our desired functionality
  • No obvious integration approach
  • Therefore we developed a service layer to
    • Abstract integration complexities
    • Expose business capabilities
  • Rapidly put to use

Output

  • 2002 Kiwibank launched
  • 203 first web services; phone banking
  • 2004 txt banking
  • 2005 back office apps
  • 2006 mobile banking, mobile top up; customer facing tool; international

Development Strategy

  • Commercial Need Drives Innovation (Understand problem, visualise solutions)
  • Project Management (objective is certina, make it happen)
  • Requires good development tools and technologies!
    • Prototype quickly
    • Deliver to production robustly

Microsoft and Kiwibank

  • Development environment: Visual Studio
  • Database: SQL Server
  • Framework: .NET

Business Benefits

  • Foster innovation
  • Better, faster delivery
  • Beat the big bankers to market
    • Txt banking
    • Mobile banking
  • Build the brand
  • Enable future change

What’s next?

  • Continue customer focus
  • Improve process efficiency
  • Better manageability with WCF
  • Always looking for new opportunities!


New Products Coming

  • Longhorn Server
  • IIS7
  • .Net 3.5
  • SQL Server Katmai
  • Expression Blend
  • Team foundation Server v2
  • Windows Home Server
  • Internet Explorer 8
  • WPF/e
  • Visual Studio Orcas
Windows Home Server Demo
  • Allows you to browse backups to selectively restore
  • Single Instance Storage
  • Remote Access via Internet
  • Automatically reassign files to free space, so can remove hard drives on demand
  • So can add bigger drives in the future, without increasing the number of external drives attached
  • Windows Vista Ultimate Extras – new updates via Windows Update e.g Windows DreamScene (moving desktop background video).
  • Jeremy Boyd (built tool Background Motion), Director, Mindscape

Microsoft competition in cooperation with GeekZone

Thursday, March 8, 2007

Wellington SQL Server User Group meeting

Venue: Microsoft, Level 12, Mobil on the Quay, Lambton Quay, Wellington.

Time: Thursday 8 March 2007 @ 6pm

Who: Rob Hawthorne

What: Disk Management

Disk Types

  • IDE
  • SATA
  • SCSI

Disk Management

  • SAN - Best for Enterprise Class environments
  • NAS - Best for Medium Class environments and can include:
    • snapshot
    • File & Print management functions
    • Medium - high performance
    • Good levels of redundancy
    • Reduced scalability
  • iSCSI
    • a new technology
    • SCSI over IP networks
    • Some hardware devices, but mostly software based
    • Doesn't care about the disks
    • Cheap remote mirroring solutin
    • Slow! Need a fast network (1GB min)

Performance Issues

There are 3 major I/O performance factors:

  • I/O bandwidth: The aggregate bandwidth, typically measured in megabytes per second that can be sustained to a database device.
  • I/O latency: The latency is...
  • I/O something else: I missed before he took away the slide.

Scalability limits:

  • Database performance is limited by maximum Transaction log throughput, only ONE possible transaction log per database!
    • disk I/O
  • can be resolved by:
    • Multiple spindles

Disk I/O:

  • Determine i/o pattern
    • Writes
      • Transaction Log (~100% sequential)
      • Lazy writer (random)
    • Read
      • Random vs. Sequential
  • Establish disk I/O baseline or SLA outside SQL Server, using:
    • SQLIOSIM or IOMeter (Interl, public domain)
    • Special cases:
      • Transaction log
      • 1 tempdb file for each cpu
      • Max Paalle lBCP load = 1 BCP / CPU
        • Into SQL Server 005 partioned tables

I/O Bottlenecks

  • Are typically easy to find
  • Be very careful with the transaction log
    • Beyond 12 to 15 spindles doesn't buy much
    • Keep on separate physical disks for recovery
    • make RAID 10
  • Beware of write cost on RAID5:
    • In RAID 5 each write has to logically read old data + old parity (to compute parity) and write new data and new parity
    • Each RAID 5 write = 2 READS + 2 WRITES!
      • However: disk guys work real hard to optimize this
    • Recent bulk load tests showed >50% degradation comparing RAID 0+1 vs. RAID 5

Optimizing for the Log

  • Profile the log disk
    • How many writes / second can your disk sustain?
  • Keep the log disk purely for the log
    • Keeps the disk heads writing sequentially minimizing seeks
  • Beware of unprotected write back

Base practice for SQL Server and Disks

  • Separate logs, Data, TempDB, Indexes and System DBs, Pagefile an OS
    • Nothing new here - Make better use of fileGroups
    • Watch for TempDB usage in 2005
    • Table partitioning can change the game!
    • Make sure Model D B has settings to persist
  • Auto-grow can be very harmful to system performance
    • Understand the app!
    • Watch for growing logs and data files in DMV (Dynamic management views)
  • Formatting
    • 64KB as a general recommendation
    • SQL uses 8KB pages
    • Read and write 8 x 8KB pages
    • Use DISKPAR.exe (no spelling mistake, diskpar is name) to align disk sectors
  • Battery-backup controllers are generally best
  • Speed of disk drives i.e. 20 or 15K RPM)
    • Faster = Better for performance
  • Disk controllers need to be configured to align with application profile (understand the app!)
    • Read vs. Write
  • Sector sizes
  • Paging will cause performance issues
  • Row-Overflow will cause PageSplits
    • Understand the app!
    • Row-Overflow > 8,060 bytes per row (8KB)
    • varchar, nvarchar, varbinary, sql_variant

Summary

  • Understand the app!
  • Apply common-sense
  • Buy the best you can afford
  • Read the whitepapers
    • SQL Server 2000 I/O Basics
    • SQL Server 2005 I/O Basics Chapter 2
  • If suffering performance issues, identify if disk is cause (i.e. high CPU could be disk related)
  • If need help, ask!