Recent Posts | - July, 2024-7,(1)
- May, 2024-5,(2)
- May, 2023-5,(1)
- February, 2023-2,(1)
- November, 2022-11,(1)
- July, 2022-7,(2)
- March, 2022-3,(1)
- November, 2021-11,(2)
- August, 2021-8,(2)
- July, 2021-7,(2)
- June, 2021-6,(1)
- May, 2021-5,(1)
- March, 2021-3,(1)
- February, 2021-2,(2)
- January, 2021-1,(7)
- December, 2020-12,(3)
- March, 2020-3,(2)
- February, 2020-2,(1)
- December, 2019-12,(2)
- November, 2019-11,(1)
- October, 2019-10,(1)
- September, 2019-9,(1)
- August, 2019-8,(1)
- May, 2019-5,(1)
- April, 2019-4,(2)
- March, 2019-3,(2)
- December, 2018-12,(1)
- November, 2018-11,(4)
- July, 2018-7,(1)
- May, 2018-5,(3)
- April, 2018-4,(2)
- February, 2018-2,(3)
- January, 2018-1,(3)
- November, 2017-11,(2)
- August, 2017-8,(1)
- June, 2017-6,(3)
- May, 2017-5,(5)
- February, 2017-2,(1)
- December, 2016-12,(1)
- October, 2016-10,(2)
- September, 2016-9,(1)
- August, 2016-8,(1)
- July, 2016-7,(1)
- March, 2016-3,(2)
- February, 2016-2,(3)
- December, 2015-12,(5)
- November, 2015-11,(5)
- September, 2015-9,(1)
- August, 2015-8,(2)
- July, 2015-7,(1)
- March, 2015-3,(2)
- February, 2015-2,(1)
- December, 2014-12,(4)
- July, 2014-7,(2)
- June, 2014-6,(2)
- May, 2014-5,(3)
- April, 2014-4,(3)
- March, 2014-3,(1)
- December, 2013-12,(2)
- November, 2013-11,(1)
- July, 2013-7,(1)
- June, 2013-6,(2)
- May, 2013-5,(1)
- March, 2013-3,(3)
- February, 2013-2,(3)
- January, 2013-1,(1)
- December, 2012-12,(3)
- November, 2012-11,(1)
- October, 2012-10,(1)
- September, 2012-9,(1)
- August, 2012-8,(1)
- July, 2012-7,(6)
- June, 2012-6,(1)
- April, 2012-4,(1)
- March, 2012-3,(3)
- February, 2012-2,(3)
- January, 2012-1,(4)
- December, 2011-12,(3)
- October, 2011-10,(3)
- September, 2011-9,(1)
- August, 2011-8,(10)
- July, 2011-7,(2)
- June, 2011-6,(7)
- March, 2011-3,(2)
- February, 2011-2,(3)
- January, 2011-1,(1)
- September, 2010-9,(1)
- August, 2010-8,(2)
- June, 2010-6,(1)
- May, 2010-5,(1)
- April, 2010-4,(3)
- March, 2010-3,(2)
- February, 2010-2,(3)
- January, 2010-1,(1)
- December, 2009-12,(3)
- November, 2009-11,(3)
- October, 2009-10,(2)
- September, 2009-9,(5)
- August, 2009-8,(3)
- July, 2009-7,(9)
- June, 2009-6,(2)
- May, 2009-5,(2)
- April, 2009-4,(9)
- March, 2009-3,(6)
- February, 2009-2,(4)
- January, 2009-1,(10)
- December, 2008-12,(5)
- November, 2008-11,(5)
- October, 2008-10,(13)
- September, 2008-9,(10)
- August, 2008-8,(7)
- July, 2008-7,(8)
- June, 2008-6,(12)
- May, 2008-5,(14)
- April, 2008-4,(12)
- March, 2008-3,(17)
- February, 2008-2,(10)
- January, 2008-1,(16)
- December, 2007-12,(6)
- November, 2007-11,(4)
|
|
|
Blog posts for the month of October,2008.
|
|
| merry-go-round scans | 10/28/2008 3:34:34 PM |
An often overlooked feature of SQL Server Enterprise Edition is support for advanced scanning, referred to as merry-go-round scans. Often I'm asked about the differences between enteprise edition and standard, this is one that I often forget about this one. Recently I was researching some information on read-consistency problems ( nolock etc) and came across this type of scan. There are many resources about the differences, i've quoted some here below, and also list the reference.
From:
http://blogs.msdn.com/boduff/archive/2008/01/24/why-should-i-use-sql-enterprise-edition.aspx
http://www.microsoft.com/Sqlserver/2005/en/us/compare-features.aspx
http://www.sqlmag.com/Articles/Print.cfm?ArticleID=49285
There are some key enterprise edition only performance benefits across RAM, Parallelism, Query Plans and DISK I/O that will lead to better performance on high end systems, which I will try to list here.
1) Lock Pages in Memory
Lock Pages In Memory" allows SQL Server 2005 to manage its own memory (as opposed to having the operating system do it). It is extremely important to give this right to the SQL Server Service account, especially on 64-bit SQL Server 2005 systems with lots of RAM. It also is required on 32-bit systems to enable AWE.
See http://blogs.msdn.com/psssql/archive/2007/10/18/do-i-have-to-assign-the-lock-privilege-for-local-system.aspx
2) Advanced Scanning (aka Merry-go-round scan)
In SQL Server Enterprise Edition, the advanced scan feature allows multiple tasks to share full table scans. If the execution plan of a Transact-SQL statement requires a scan of the data pages in a table and the Database Engine detects that the table is already being scanned for another execution plan, the Database Engine joins the second scan to the first, at the current location of the second scan. The Database Engine reads each page one time and passes the rows from each page to both execution plans. This continues until the end of the table is reached.
See http://msdn2.microsoft.com/en-us/library/ms191475.aspx and Merry-Go-Round Culprits for performance variances
3) Larger Read Ahead Buffering on Storage Devices
Determining I/O section mentions that EE does up to 1024k read ahead buffering on a Storage Area Network (std only does 64k). This indicates that EE is more suitable to SAN’s which need more buffering due to increased latency.
http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/pdpliobp.mspx
4) Large Page Extensions
SQL Enterprise Edition retrieves pages up to eight at a go.
http://msdn2.microsoft.com/en-us/library/aa337525.aspx
5) Parallel index Operations
This is particularly useful in data warehouses where indexes may be frequently dropped and re-created.
http://msdn2.microsoft.com/en-us/library/ms189329.aspx
|
| Buttoning up the wall | 10/26/2008 7:17:40 PM |
| Door Installation | 10/24/2008 7:50:05 AM |
Finally the one set of doors and one window are installed.
Dealing with an unlevel floor and walls that are not plumb are a joy.
|
| Job listing with steps and tsql | 10/22/2008 1:05:02 PM |
SQL Agent job listing, jobs, steps and tsql / commands executed.
Not really useful, but helpful when someone wants to see all the jobs and the steps they are executing.
Save as an excel file, or publish to rdl and push to a reporting site so they can always see it themselves....
select sj.name,sj.description,sjs.step_name, sjs.subsystem,sjs.command,sjs.database_name, sjs.output_file_name from sysjobs sj inner join sysjobsteps sjs on sj.job_id = sjs.job_id -- where sj.name like 'cy%' order by sj.job_id,sjs.step_id
|
| Hash Join vs. Merge Join | 10/21/2008 12:23:07 PM |
Error: 8646, Severity: 21, State: 1. Unable to find index entry in index ID 1, of table 1877581727, in database 'db name here'. The indicated index is corrupt or there is a problem with the current update plan. Run DBCC CHECKDB or DBCC CHECKTABLE. If the problem persists, contact product support.
Recently ran into a serious issue with SQL Server issueing the above message under load. After shutting things down and running check db there was no corruption, but every time a particular stored procedure was executed under load, stack dumps would occur with the above message in the Error Log.
With the help of Microsoft support we isolate the issue to a particular delete statement that was being executed with a join to another table and a where clause. The query was performing a hash join and there is some bug that was causing a problem. Microsoft continues to research the issue, but recommended we use a query hint to force a merge join to resolve the problem. Testing indicates that the problem has gone away.
Old Query:
DELETE FROM {child table} FROM {child table} aq, {parent table} a WHERE aq.id = a.id AND ( a.status_id in (4, 5, 6, 7) OR type_id = 3 OR a.match_id =2 AND a.id%@p_in_threads = @p_in_thread_no
New Query
DELETE FROM {child table} FROM {child table} aq, {parent table} a WHERE aq.id = a.id AND ( a.status_id in (4, 5, 6, 7) OR type_id = 3 OR a.match_id =2 AND a.id%@p_in_threads = @p_in_thread_no option (merge join) |
| Roof Day 1 | 10/19/2008 12:00:29 PM |
| Roof Done | 10/20/2008 12:05:13 PM |
The roof is done.
I still have some caulking and and gutter work, but for the most part it is leak proof.
|
| Buick drops the ball, er...muffler | 10/18/2008 11:55:28 AM |
She's running good, park in the driveway. Standing out front, enjoying a cold beer, thud. Muffler down.
|
| Skylights installed. | 10/18/2008 7:50:11 AM |
| Useable Space | 10/14/2008 9:52:07 AM |
| MySQL Links for the SQL DBA | 10/8/2008 10:45:55 AM |
I have done some recent work on MySQL. Most of my work on the database side pertains to MS SQL Server, Oracle and DB2 but at times, I have done some MySQL related work as well. Here are some good links on MySQL:
- MySQL white papers: http://www.mysql.com/it-resources/white-papers/
- MySQL case studies (yahoo, Cox Communications, AP, etc.): http://www.mysql.com/it-resources/case-studies/
- MaxDB information: http://www.mysql.com/products/maxdb/
(MaxDB is an enhanced SAP DB, with cursors, stored procedures, triggers, views, etc.) … see http://dev.mysql.com/downloads/maxdb/7.5.00.html
- Database comparison tool: http://dev.mysql.com/tech-resources/features.html (compare against SQL Server, Oracle, postgres, etc.)
- MySQL Reference Manual: http://dev.mysql.com/doc/mysql/en/
- The main dead tree reference guide would probably be High Performance MySQL. There’s a list of others at http://dev.mysql.com/books/
|
| Check the Uptime of a Windows Server | 10/6/2008 11:08:30 AM |
Recently needed to check the uptime of some windows server, mostly to verify that we had rebooted them all.
Quickly found a command line:
There are two options
1 - net statistics server
2 - SystemInfo |FIND /I "System Up Time"
Be nice to include this in my monitoring program, so it could be quickly queried from a centralized place, or embed this in some windows script that could take a list of them and run it remotely.
Thanks to Rick Mcintosh. |
| Giving up on the ASP.NET Treeview | 10/3/2008 1:38:48 PM |
The controls with asp.net are great, some of us can remember programing in asp and request.response, but asp.net has been great....with the exception of the asp.net treeview.
I've tried using this thing off and on for months, really digging in recently and have come to the conclusion, that I am better off creating my own treeview control.
I think for simple requirements the treeview control works great, but my requirements were to create a dynamically driven treeview loaded from a database as each node is clicked. Somehow this just causes the treeview control to loose it's brain, viewstate and postbacks didn't work, slowly I began building up so many hacks to make it work, that I just couldn't believe it. You have to know when to give up, and I was there.
I created my own tree view for my knowledge base, and it's located here: http://www.lifeasbob.com/code/kb_articles.aspx.
It uses a combination of post backs and query strings to manipulate and display articles, search them too (though I need to work on that some more), also for me I have the ability to add, edit and delete them off the treeview.
I feel very satisfied with my own version of the treeview, as I understand everything about it and don't have to worry about the voodoo asp.net treeview control loosing state and the myriad of other issues I ran into. I tried many of the websites below for help, and they were great, but ultimately the damn thing still didn't work, mine does, code done.
http://www.mredkj.com/vbnet/scriptCallback.html
http://aspalliance.com/732
http://www.dotnetjunkies.com/Article/E80EC96F-1C32-4855-85AE-9E30EECF13D7.dcik
http://www.bulahema.com/en/aspnet20treeviewwithoutpostbacksolved |
|
Blog Home
|
|
|