Guys,
Here are some links to download Free .Net Development and Architecure E-books.
Foundations Of Programming: The Foundation Of Programming Series Free e-book By Karl Seguin is one of the best book. It is simple, short and sweet. It gives a better thought process – that’ll definitely enable to code better and think better. This book covers the ALT.NET Philosophy, Domain Driven Development concepts, DI, TDD etc in a nice way. Download it
Microsoft Application Architecture Guide, 2nd Edition: An essential read for any Microsoft.NET developer or Architect to understand the underlying architecture and design principles and patterns for developing successful solutions on the Microsoft platform and the .NET Framework. This guide neatly covers popular architecture patterns, best practices and common challenges you need to understand for developing .NET applications. Get a good grip on developing enterprise applications in .NET. Download it
Rob Miles C# Yellow Book 2010: A nice action packed book that takes you through C# and .NET concepts. This book explains C# language and .NET library in general – with a clear focus on implementation thought process and best practices.
Rob Miles CSharp Yellow Book 2008.pdf
Rob Miles CSharp Yellow Book 2009.pdf
Rob Miles CSharp Yellow Book 2010.pdf
Threading in C#: A short, neatly written book from Joe Albahari about Threading in C#. This is a must read for any .NET programmer to understand more about threading in general, thread pooling, synchronization, Non blocking synchronization, etc. In this book, Joe even covers the Parallel Framework Extensions and Parallel programming in .NET.
http://www.albahari.com/threading/threading.pdf
Improving .NET Application Performance and Scalability: Microsoft guide, which focuses on designing your applications with Performance and scalability in mind. It has sections relevant to architects, developers, testers, and administrators. Following the checklists and guidance in this book will ensure that there won’t be any unpleasant surprises in the end. Read this guide if you develop Enterprise applications in .NET.
Download it
Applying Design Patterns: A quick introduction towards the thought process of applying design patterns. The objective of the book is to introduce design patterns in a simple way, so that developers can understand some common patterns and how to apply them.
http://amazedsaint.net/patterns.pdf
RefCardz from DZone: DZone has a number of awesome Quick reference sheets on various technologies. Registration is required to get these reference sheets.
Getting started with WCF 4.0
Getting Started With Silverlight + Expression Blend
Essential F#
Enjoy & Happy Coding
Sudhir
Friday, October 22, 2010
Thursday, September 2, 2010
Register for Level 300-400 Microsoft SQL Server 2008 Performance Monitoring and Tuning Seminar
Hello Friends,
SQLWORKSHOP is organizing a free Level 300-400 Microsoft SQL Server 2008 Performance Monitoring and Tuning Seminar on Sept 9th.
Click here to register for the Seminar.
Event Overview
Registration as of 08:30h, Start of Seminar 09:00h, End 16:15h.
Goal of the Seminar: To provide the database developers and administrators with knowledge on how to monitor and tune performance of Microsoft SQL Server 2008 and SQL Server 2005. The seminar addresses CPU, Memory, Disk, Query and Lock monitoring and tuning techniques.
Target Group
Developers, Database Administrators and Database Architects. This seminar is equally designed for application developers and database administrators.
Prerequisite
Some experience administering or developing applications with SQL Server.
Instructor
Ramesh Meyyappan (www.sqlworkshops.com) with more than 15 years of SQL Server expertise including working in the past as a Program Manager in the SQL Server Development Team at Microsoft Corporation. He is specialized in SQL Server Performance Monitoring, Tuning & Troubleshooting and SQL Server Administration and Tuning for SAP installations.
Agenda
08.30 – 09.00 Registration
09.00 – 10.15 Monitoring and Tuning Queries and Configuration to better utilize CPU, Memory and Disk and to reduce Total Cost of Ownership
10.15 – 10.45 Break
10.45 – 12.00 Monitoring and Tuning Queries and Configuration to better utilize CPU, Memory and Disk and to reduce Total Cost of Ownership
12.00 – 13.00 Lunch
13.00 – 14.15 Monitoring and Tuning Query Execution and Locking issues
14.15 - 14.45 Break
14.45 – 16.00 Monitoring and Tuning Query Execution and Locking issues
16.00 – 16:15 Q and A
Happy Coding
Sudhir
SQLWORKSHOP is organizing a free Level 300-400 Microsoft SQL Server 2008 Performance Monitoring and Tuning Seminar on Sept 9th.
Click here to register for the Seminar.
Event Overview
Registration as of 08:30h, Start of Seminar 09:00h, End 16:15h.
Goal of the Seminar: To provide the database developers and administrators with knowledge on how to monitor and tune performance of Microsoft SQL Server 2008 and SQL Server 2005. The seminar addresses CPU, Memory, Disk, Query and Lock monitoring and tuning techniques.
Target Group
Developers, Database Administrators and Database Architects. This seminar is equally designed for application developers and database administrators.
Prerequisite
Some experience administering or developing applications with SQL Server.
Instructor
Ramesh Meyyappan (www.sqlworkshops.com) with more than 15 years of SQL Server expertise including working in the past as a Program Manager in the SQL Server Development Team at Microsoft Corporation. He is specialized in SQL Server Performance Monitoring, Tuning & Troubleshooting and SQL Server Administration and Tuning for SAP installations.
Agenda
08.30 – 09.00 Registration
09.00 – 10.15 Monitoring and Tuning Queries and Configuration to better utilize CPU, Memory and Disk and to reduce Total Cost of Ownership
10.15 – 10.45 Break
10.45 – 12.00 Monitoring and Tuning Queries and Configuration to better utilize CPU, Memory and Disk and to reduce Total Cost of Ownership
12.00 – 13.00 Lunch
13.00 – 14.15 Monitoring and Tuning Query Execution and Locking issues
14.15 - 14.45 Break
14.45 – 16.00 Monitoring and Tuning Query Execution and Locking issues
16.00 – 16:15 Q and A
Happy Coding
Sudhir
Level 400 Performance Monitoring and Tuning Webcast
Hello,
Recently SQLWORKSHOPS organized Level 400 Performance Monitoring and Tuning Webcast. Here is the link to download the webcast.
The agenda for the Webcast is:
Webcast 1: Explains Memory allocation issues with sort. Demonstrates ways to identify sort spills to tempdb. Provides query rewrite procedure to avoid sort spills to tempdb. Demonstrates cases where 1 tempdb date file per core might not be ideal for all implementations.
Webcast 2: Explains high CXPACKET waits are NOT a direct result of delays associated with inefficiencies of parallel processing. Provides example to scale queries over many CPU cores without reducing MAXDOP settings.
Webcast 3: Recommends not using stored procedure or other plan caching mechanism like using sp_executesql and Prepared Statement using ADO.NET or OLEDB based executions for memory allocating queries. Common memory allocating queries are that perform Sort and do Hash Match operations like Hash Join or Hash Aggregation or Hash Union.
With examples provides ways to identify queries performing Hash match operations that spill to tempdb. Using SQL Profiler: Hash Warnings (Hash Recursion and Hash Bailout). Using sys.dm_exec_query_memory_grants: Granted Memory, Used Memory and Maximum Used memory. Explains how SLEEP_TASK wait type is associated with Hash Warnings.
Explains with examples how sp_recompile can block and bring an application to a standstill and recommends using DBCC FREEPROCCACHE (plan_handle) instead.
Explains with examples how stored procedure or other plan caching mechanism affects queries that sort (perform order by). Explains how IO_COMPLETION wait type is associated with Sort Warnings.
Demonstrates why rollbacks and database restore could wait on IO_COMPLETION wait type and if needed how this wait can be reduced.
Explains how parallel query performance is significantly affected by a CPU intensive query executing on one of the CPU cores. Explains the reason for the performance issue and how to identify the issue with SLEEP_TASK wait type. With example explains the reason for the observed query execution time when the child thread executes on the CPU core where the CPU intensive query executes and also when the coordinator executes on the CPU core where the CPU intensive query executes. Recommends ways to avoid this parallel sort query performance issue and also demonstrates that only certain queries will be affected by this and not all parallel queries.
Explains sys.dm_os_waits_stats.signal_wait_time_ms does not indicate system wide CPU pressure, just at a CPU core level.
Explains the prefetch mechanism and how it can affect query performance. Provides ways to force prefecth. Demonstrates cases where Avg. Disk Sec / read, the disk latency, PAGEIOLATCH_SH, Avg. disk queue length is very high and the query executes fast.
Explains why Plan Guides (Plan Freezing!) cannot help with prefetch or in few other cases.
The Goal of these webcasts is to help reduce Total Cost of Ownership (TCO), by efficiently utilizing existing investment.
Do let me know if you face any problem downloading the files.
Happy Coding
Sudhir
Recently SQLWORKSHOPS organized Level 400 Performance Monitoring and Tuning Webcast. Here is the link to download the webcast.
The agenda for the Webcast is:
Webcast 1: Explains Memory allocation issues with sort. Demonstrates ways to identify sort spills to tempdb. Provides query rewrite procedure to avoid sort spills to tempdb. Demonstrates cases where 1 tempdb date file per core might not be ideal for all implementations.
Webcast 2: Explains high CXPACKET waits are NOT a direct result of delays associated with inefficiencies of parallel processing. Provides example to scale queries over many CPU cores without reducing MAXDOP settings.
Webcast 3: Recommends not using stored procedure or other plan caching mechanism like using sp_executesql and Prepared Statement using ADO.NET or OLEDB based executions for memory allocating queries. Common memory allocating queries are that perform Sort and do Hash Match operations like Hash Join or Hash Aggregation or Hash Union.
With examples provides ways to identify queries performing Hash match operations that spill to tempdb. Using SQL Profiler: Hash Warnings (Hash Recursion and Hash Bailout). Using sys.dm_exec_query_memory_grants: Granted Memory, Used Memory and Maximum Used memory. Explains how SLEEP_TASK wait type is associated with Hash Warnings.
Explains with examples how sp_recompile can block and bring an application to a standstill and recommends using DBCC FREEPROCCACHE (plan_handle) instead.
Explains with examples how stored procedure or other plan caching mechanism affects queries that sort (perform order by). Explains how IO_COMPLETION wait type is associated with Sort Warnings.
Demonstrates why rollbacks and database restore could wait on IO_COMPLETION wait type and if needed how this wait can be reduced.
Explains how parallel query performance is significantly affected by a CPU intensive query executing on one of the CPU cores. Explains the reason for the performance issue and how to identify the issue with SLEEP_TASK wait type. With example explains the reason for the observed query execution time when the child thread executes on the CPU core where the CPU intensive query executes and also when the coordinator executes on the CPU core where the CPU intensive query executes. Recommends ways to avoid this parallel sort query performance issue and also demonstrates that only certain queries will be affected by this and not all parallel queries.
Explains sys.dm_os_waits_stats.signal_wait_time_ms does not indicate system wide CPU pressure, just at a CPU core level.
Explains the prefetch mechanism and how it can affect query performance. Provides ways to force prefecth. Demonstrates cases where Avg. Disk Sec / read, the disk latency, PAGEIOLATCH_SH, Avg. disk queue length is very high and the query executes fast.
Explains why Plan Guides (Plan Freezing!) cannot help with prefetch or in few other cases.
The Goal of these webcasts is to help reduce Total Cost of Ownership (TCO), by efficiently utilizing existing investment.
Do let me know if you face any problem downloading the files.
Happy Coding
Sudhir
Thursday, August 12, 2010
24 Hours of PASS: Summit Preview
Hi Guys,
I am sure you would have attended 24 hours of PASS last time. They are coming up with another 24 hour event in September (15 & 16).
Here are the excerpts from PASS.
Join an exceptional lineup of SQL Server and BI experts from around the world as they present a sneak peek of PASS Summit 2010 in 24 free live webcasts September 15-16.
This installment of 24 Hours of PASS delivers the hottest SQL Server and BI content directly to your computer – with a twist. Instead of running continuously for 24 hours, the September event divides the webcasts across 2 days, with each day beginning at 12:00 GMT (UTC). Check out what time it starts in your neck of the woods.
Dig into Data Warehousing, MDX, KPIs, and DTS-to-SSIS migration. Learn best practices for sizing database hardware and performance tuning. Get an in-depth look at PowerShell, storage for the DBA, and the latest T-SQL enhancements. And see how to manage teams, make your presentations rock, prepare for your next job, and more.
Click here to register
Here are the details about all sessions:
Enjoy
I am sure you would have attended 24 hours of PASS last time. They are coming up with another 24 hour event in September (15 & 16).
Here are the excerpts from PASS.
Join an exceptional lineup of SQL Server and BI experts from around the world as they present a sneak peek of PASS Summit 2010 in 24 free live webcasts September 15-16.
This installment of 24 Hours of PASS delivers the hottest SQL Server and BI content directly to your computer – with a twist. Instead of running continuously for 24 hours, the September event divides the webcasts across 2 days, with each day beginning at 12:00 GMT (UTC). Check out what time it starts in your neck of the woods.
Dig into Data Warehousing, MDX, KPIs, and DTS-to-SSIS migration. Learn best practices for sizing database hardware and performance tuning. Get an in-depth look at PowerShell, storage for the DBA, and the latest T-SQL enhancements. And see how to manage teams, make your presentations rock, prepare for your next job, and more.
Click here to register
Here are the details about all sessions:
- Session 01: Peter Ward - I AM A DBA – WHY SHOULD I CARE ABOUT SQL SERVER 2008 R2? SQL Server 2008 R2 isn't a minor release for the Database Engine. We’ll look many new R2 features for the DBA, including improvements in locking and merging partitions and Unicode compression.
- Session 02: Allen White - GATHER SQL SERVER PERFORMANCE DATA WITH POWERSHELL. Keeping a performance metrics baseline lets you know when you really have a problem. We'll build a PowerShell script to gather metrics from SQL Server and a report to easily monitor your systems.
- Session 03: Craig Utley - WHY DATA WAREHOUSING PROJECTS FAIL (AND WHAT YOU CAN DO ABOUT IT). Data warehousing projects, like many large IT projects, have high failure rates. Learn the main reasons behind these failures and how to succeed in overcoming the obstacles.
- Session 04: Glenn Berry - HARDWARE 201: SELECTING AND SIZING DATABASE HARDWARE FOR OLTP PERFORMANCE. This session covers current and upcoming hardware from Intel and AMD and gives you the resources to make better hardware-selection decisions to support SQL Server OLTP workloads.
- Session 05: Andy Leonard - MANAGING TEAMS. Are you a member of a team of database pros? Are you part of a developer team? Do you manage or lead a team? Andy Leonard shares experiences, war stories, and lessons learned from years of managing and leading teams.
- Session 06: Ken Simmons - ENFORCING COMPLIANCE WITH POLICY-BASED MANAGEMENT. Learn specific ways you can use Policy-Based Management to help enforce proper server configuration, security, auditing, and encryption as well as creating Alerts to notify you when violations occur.
- Session 07: Stacia Misner - INTRO TO MDX. Learn how to perform many calculations easier and faster with MDX than T-SQL, how to think about multidimensional space, how to create basic queries, which functions to learn first, and how to construct useful calculations.
- Session 08: Kalen Delaney - ISOLATION VS CONCURRENCY: WHAT ARE THE CHOICES? In this presentation, we’ll look at the relationship between isolation level and concurrency models to see how the various isolation levels work in either an optimistic or pessimistic manner.
- Session 09: Grant Fritchey - IDENTIFYING COSTLY QUERIES. Before you dive into query execution plans, you need to identify the queries and procedures that are causing your system the most pain. In this session, learn several useful ways to gather metrics on query performance.
- Session 10: Douglas McDowell - HOW TO ROCK YOUR PRESENTATIONS. Just because you’re a technical rock star doesn’t mean your technical presentation is going to rock. Learn best practices for structuring, building and delivering a compelling presentation every time.
- Session 11: Paul Nielsen - EXTREAME DATABASE DESIGN. Push the data modeling envelope with advanced EAV, temporal attributes, class inheritance, domain classes, decorator classes, and transparent data overlays using patterns that are easy to query with normal SQL.
- Session 12: Peter Myers - DELIVERING KPIs WITH ANALYSIS SERVICES. See how Key Performance Indicators are defined in SSAS cubes and made available for reporting, where the KPI sources its target data, and how to use the new Excel 2010 What-If Analysis feature to collect data.
- Session 13: Brian Knight - UPGRADING DTS PACKAGES TO SSIS. In this level-200 session, see why you should upgrade from DTS to SSIS, options for converting, how to add value to packages during the conversion process, and how to assess the scope of the project (time, costs).
- Session 14: Kevin Goode - STATISTICS: HOW TO PROVE EVERYTHING BUT THE TRUTH. Statistics are a key component of tuning SQL Server. This session examines the internals of statistics and explains what ones are available, how they’re used, and what causes them to be recomputed.
- Session 15: Marco Russo - SQLBI METHODOLOGY. SQLBI Methodology is a design and implementation guide to model and build a BI solution using SQL Server, Integration Services and Analysis Services, providing greater flexibility in terms of design and maintenance.
- Session 16: Chris Shaw - PREPARING FOR YOUR NEXT JOB. Review interviews I’ve conducted and the mistakes that inspired me to continue looking for the right candidate. The goal of this session is to learn from others’ mistakes so that we can put our best foot forward.
- Session 17: Denny Cherry - STORAGE FOR THE DBA. Storage is one of the biggest pain points in SQL Server performance. After this session, you will understand how to talk to your storage admin to get the best performance from your storage environment.
- Session 18: Klaus Aschenbrenner - SQL Server 2008 R2 STREAMINSIGHT. Learn how to use Microsoft’s new complex event-processing runtime to analyze large data streams in real time and how to develop with StreamInsight and extend StreamInsight-based apps with your own adapters.
- Session 19: Jen McCown - T-SQL BRUSH-UP: THE BEST THINGS YOU FORGOT YOU KNEW. You're a good SQL Server pro, but sometimes a piece of T-SQL falls out of memory. Revisit old favorites and brush up on new and improved T-SQL features like MERGE, OVER, and PARTITION BY.
- Session 20: Brad McGehee - AUTOMATE YOUR DATABASE MAINTENANCE USING OLA HALLENGREN’S FREE SCRIPT. See how to implement Ola Hallengren’s free database maintenance script, which makes it easy for all DBAs—novice or experienced—to perform optimal database maintenance.
- Session 21: Kevin Kline - RELATIONAL DATABASE DESIGN FOR UTTER NEWBIES. Investing a little time and effort into your design early will yield big benefits by providing a database that is self-documenting, easy to maintain and alter, and provides high-quality data.
- Session 22: Adam Jorgensen - ZERO TO CUBE: FAST TRACK TO ANALYSIS SERVICES DEVELOPMENT. Come get hands-on with Analysis Services as we build a fully functional OLAP cube in 1 hour with all the bells and whistles. Even experienced SSAS developers will learn something!
- Session 23: Louis Davidson - TOP 10 DESIGN MISTAKES. People do a lot of really stupid things in the name of "getting it done" (I’m not immune myself). The list we’ll cover in this session is simply the 10 most heinous database design mistakes that come up often in the real world.
- Session 24: Rob Farley - UNDERSTANDING SARGABILITY TO MAKE YOUR QUERIES RUN FASTER. SARGability, the ability to search through an index for a value, is often misunderstood—especially in regard to joins—leading to queries that don’t run as well as they should.
Enjoy
Monday, June 7, 2010
Execute UPDATE STATISTICS for all SQL Server Databases
Guys,
Today we will write a simple script which will generate UPDATE STATISTICS for all the database on current SQL Server. Statistics in SQL Server refers specifically to information that the server collects about the distribution of data in columns and indexes. This data is used by the query optimizer to determine the plan of attack for returning results when you run a query. While in the majority of cases SQL Server takes care of this statistical recordkeeping for you automatically, it's useful to have some understanding of what's going on, and to know when you might need to intervene.
Automatic Statistics
By default, SQL Server databases automatically create and update statistics. Although you can disable this (by setting a property of the database), you should almost certainly leave it on. SQL Server needs these statistics to do a good job with query processing, and it's likely to be smarter than you about what and when to update. The information that gets stored includes:
SQL Server's engine will update the statistic when:
Use AdventureWorks
Exec sp_UpdateStats
Use AdventureWorksDW
Exec sp_UpdateStats
Use LearningCT
Exec sp_UpdateStats
Use master
Exec sp_UpdateStats
Use msdb
Exec sp_UpdateStats
Use Northwind
Exec sp_UpdateStats
Use ReportServer$MSSQL2008
Exec sp_UpdateStats
Use ReportServer$MSSQL2008TempDB
Exec sp_UpdateStats
Use SensitiveDB
Exec sp_UpdateStats
Use testdb
Exec sp_UpdateStats
Now copy this text & paste it into a query window in SQL Server Management Studio, then execute it.
When you execute the code, you will see the output like this:
This shows which all indexes are updated.
Happy SQL Coding
Today we will write a simple script which will generate UPDATE STATISTICS for all the database on current SQL Server. Statistics in SQL Server refers specifically to information that the server collects about the distribution of data in columns and indexes. This data is used by the query optimizer to determine the plan of attack for returning results when you run a query. While in the majority of cases SQL Server takes care of this statistical recordkeeping for you automatically, it's useful to have some understanding of what's going on, and to know when you might need to intervene.
Automatic Statistics
By default, SQL Server databases automatically create and update statistics. Although you can disable this (by setting a property of the database), you should almost certainly leave it on. SQL Server needs these statistics to do a good job with query processing, and it's likely to be smarter than you about what and when to update. The information that gets stored includes:
- The number of rows and pages occupied by a table's data
- The time that statistics were last updated
- The average length of keys in a column
- Histograms showing the distribution of data in a column
- String summaries that are used when performing LIKE queries on character data
SQL Server's engine will update the statistic when:
- When data is initially added to an empty table
- The table had > 500 records when statistics were last collected and the lead column of the statistics object has now increased by 500 records since that collection date
- The table had < 500 records when statistics were last collected and the lead column of the statistics object has now increased by 500 records + 20% of the row count from the previous statistics collection date
Set nocount on
DECLARE @minId int, @maxId int
DECLARE @DB Nvarchar(100)
Create table #tmp
(
ID int Identity,
Name varchar(100)
)
INSERT INTO #tmp
SELECT [name]
FROM master..sysdatabases
WHERE [name] NOT IN ('model', 'tempdb')
ORDER BY [name]
Select @minId = 1, @maxId = count(1) from #tmp
While @minId <= @maxId
Begin
SELECT 'Use ' + name + CHAR(13) + 'Exec sp_UpdateStats ' from #tmp Where Id = @minId
Set @minId+=1
END
drop table #tmp
This code yields following results:Use AdventureWorks
Exec sp_UpdateStats
Use AdventureWorksDW
Exec sp_UpdateStats
Use LearningCT
Exec sp_UpdateStats
Use master
Exec sp_UpdateStats
Use msdb
Exec sp_UpdateStats
Use Northwind
Exec sp_UpdateStats
Use ReportServer$MSSQL2008
Exec sp_UpdateStats
Use ReportServer$MSSQL2008TempDB
Exec sp_UpdateStats
Use SensitiveDB
Exec sp_UpdateStats
Use testdb
Exec sp_UpdateStats
Now copy this text & paste it into a query window in SQL Server Management Studio, then execute it.
When you execute the code, you will see the output like this:
This shows which all indexes are updated.
Happy SQL Coding
Subscribe to:
Posts (Atom)