Solved

SQL v2000 vs v2008  -- maybe a big problem

Posted on 2009-05-07
34
1,937 Views
Last Modified: 2012-05-06
Ok, this is an odd one.  I apologize for the length.... I am in the process of upgrading the farm from v2000 to v2008.  Many of my machines talk to each other --- many apps are hitting SQL on the back-end, and traversing multiple servers;   thus, hitting v2000 and v2008 in parallel.

I've just begun having problems.  I honestly don't know yet if it is is even related to my v2008 upgrade.  Some of the problems I am seeing say network, but these problems didn't begin until i began upgrading resources to v2008.  In short, I'm having intermittent time outs, deadlocks and concurrency failures.  

I've posted two examples of the errors I am seeing below.
I have my IT guys on the boxes doing a network capture and I am watching the backend.  

The most recent failure this morning (OLE DB timeout)  brings me here: http://support.microsoft.com/kb/314530

I am extremely hestitant to change any config on the timeout (or otherwise) until i know what's what.

Basically, i'm walking between v2K and v2K8 right now, rather aggressively.  Does anybody know of any compaitibility issues that may be contributing to these intermittent networking/connectivity/timeout/concurrency problems I am seeing?

mdac, odbc, msdtc --- driver, dll versions... any ideas?

EXAMPLE 1:

A procedure is run from a java app, talking to multiple database, multiple servers, two sites.  yesterday it ran for 14 minutes!!!!   I then took PRECISELY the same execution and ran it local, on the targeted server, hitting the other resources as per norm, targeting all of the same data.  It was also very poor.  I killed it before completion.  Last night from home, coming in via rdp, precisely the SAME execution, SAME orderflow, SAME servers, SAME everything....it completed in 4 seconds.  (that is the expected, normal runtime)
 

EXAMPLE 2:

I've got a job which executes a procedure every 5 minutes throughout the business day.  It execs a simple check against two servers;  the local one (upon which the proc and job exist), and a another one.  That check also does an inner join against a static, definitional table.  this is a very genericised version of what it does:
 

insert table

select s1.chktime,s1.endpoint,s1tradecount,s1.volume from 

(

select current_timestamp as chktime,endpoint,sum(case when endpoint = 'whatever' and cilent = 'whatever' then 0 else 1 end) as tradecount, sum(case when endpoint = 'whatever' and cilent = 'whatever' then 0 else quantity end) as volume

from Localdatabase.dbo.table a   <<<< v2000 srv

inner jion serverBSameSite.otherdatabase.dbo.StaticDefinitionalDataTable b    <<<v2000 srv

on a.endpoint = b.endpoint

where timefield between 'this' and 'this'

group by endpoint ) s1

INNER JOIN

(

select current_timestamp as chktime,endpoint,sum(case when endpoint = 'whatever' and cilent = 'whatever' then 0 else 1 end) as tradecount, sum(case when endpoint = 'whatever' and cilent = 'whatever' then 0 else quantity end) as volume

from OtherServerSameSite.database.dbo.table a   <<<<< v2008 srv

INNER JOIN serverBSamesSite.otherdatabase.dbo.StaticDefinitionalDataTable b  <<< v2000 srv

on a.endpoint = b.endpoint

where timefield between 'this' and 'this'

group by endpoint ) s2

ON s1.endpoint = s2.endpoint

AND s1.chktime = s2.chktime

where blah blah = blah blah
 

the thing runs every five minutes throughout the day.  ONLY since i bumped one of those boxes to v2008 have I begun seeing intermittent failures.  i should note;  it's not an upgrade in place.  i built a new v2008 instance and migrated to it.

Open in new window

0
Comment
Question by:dbaSQL
  • 17
  • 10
  • 4
  • +1
34 Comments
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
did you:
? update the statistics on the databases after the upgrade/move/... ?
? does the explain plan change between the 2 database instances?
? can you check by adding this to the query : OPTION (MAXDOP 1)
? any errors in the ERRORLOG
? ...
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
? update the statistics on the databases after the upgrade/move/... ?
Yes, of course.  Again, though, it wasn't an upgrade.  I built a brand new box, created the db, copied over all the data and updated stats with fullscan.
? does the explain plan change between the 2 database instances?
'explain plan' ?  
? can you check by adding this to the query : OPTION (MAXDOP 1)
That is already in place in many of my procedures, to include the two examples I posted up there.
? any errors in the ERRORLOG
I was about to say no, but... all server error logs are clean except the v2008.  As of 00:00:18.41 this morning, I've been getting this:

2009-05-07 01:11:53.33 spid1s      A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 8008, committed (KB): 259704, memory utilization: 3%.


this is bad.  constantly since that time this morning.
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
check the max memory setting of that sql server instance.
if you remember our work on the last instances, you can do that yourself, now.

re: explain plan:
before you run the query in a query window, use the "query ->include actual execution plan", and run the query. you will get an additional tab with some nice graph :)
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
i may have found something.... i have a job which runs once daily at 4:45PM.  it is another 'checker' proc.  It runs on serverB, which is v2008.   it executes a local procedure which traverses multiple machines checking ordernumbers.  

checks serverA for any ordernumbers where not exists in serverB, per endpoint  
checks serverB for any ordernumbers where not exists in serverA, per endpoint

in both cases, there 6 endpoints checked, so the execution runs 6 times in one direction, then 6 times the other direction.  (serverA to B, serverB to A)

serverA is v2000
serverB is v2008

This job has been in place for more than 3 years, easy.  avg runtime is 1 minute.  i've never seen it worse than 4 minutes.  The job runs once daily at 4:45PM.  I just now got on the box to check the sql error log (thank you, angelll).  performance was atrocious.  i checked taskmgr,  sqlserveragent was eating 5G of my 8G of ram.  seriously hindering sqlserver, i am sure.

i couldn't even stop the agent via ssms.  tried several times, it failed.  had to go in thru the back end and terminate the service.  memory utilzation is back down on the box now, this is the latest in the sql error log:

..........
2009-05-07 12:01:49.05 spid1s      A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 130208, committed (KB): 260360, memory utilization: 50%.
2009-05-07 12:09:19.88 spid51      Configuration option 'Agent XPs' changed from 1 to 0. Run the RECONFIGURE statement to install.
2009-05-07 12:09:20.02 spid51      FILESTREAM: effective level = 1, configured level = 1, file system access share name = 'MSSQLSERVER'.

the 12:01 was my last paged out log entry.  this is when i terminated the service.  no more page outs.
curious re the two subsequent log entries.

more specific to my question, is my agent job log.  yesterday's execution never completed.   it was still running.  (omg)  

Job 'jobname' : Step 1, 'step name' : Began Executing 2009-05-06 16:45:00
Msg 1205, Sev 13, State 61, Line 1 : Transaction (Process ID 66) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. [SQLSTATE 40001]
Msg 7412, Sev 13, State 1, Line 139 : OLE DB provider "SQLNCLI10" for linked server "serverA" returned message "Object was open.". [SQLSTATE 01000]
..........
......
....
Msg 7412, Sev 13, State 1, Line 139 : OLE DB provider "SQLNCLI10" for linked server "serverA" returned message "Unspecified error". [SQLSTATE 01000]
....
....
OLE DB provider "SQLNCLI10" for linked server "serverA" returned message "Object was open.". [SQLSTATE 01000]
....
....

I've got that 7412 hundreds and hundreds of times.  Then the OLE DB error then twice as bad than 7412.  the job log itself is 134MB.   (this thing is never more than 1k)

This is what I'm saying  --- serverA is v2000, serverB is v2008.  The job exists on serverB and traverses both engines.  (v2000, v2008)   This job has been out there I don't even know how long.  The first relevant migration to v2008 occurred last week.  These intermittent problems have been happening ever since --- DEADLOCKS, timeouts, concurrency problems  --- this is the worst one yet.

What the hell have I missed?

0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
oh yeah, angelll, i know the plan. wasn't sure that's what you meant.  yes.  i checked it pre-deployment, it was the same.  i will check it again
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
and get this... that job that was still running, that forced me to stop the agent service --- it's in rollback now. this box is in production.  outages are costly.  lovely.
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
box has 8G ram, min and max are at the default
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
the plan is clean, angellll.   no scans, index or table.  just seeks (index and clustered index).  estimated io/cpu is nothing.   total subtreecost, nothing.  it's very clean
in fact, it appears to be cleaner than the very same on the v2000 box.   (decommissioned the v2k box, but it's still sitting there... IT hasn't taken it yet)
0
 
LVL 51

Expert Comment

by:Mark Wills
Comment Utility
any 64 bit any where ?
0
 
LVL 51

Expert Comment

by:Mark Wills
Comment Utility
linked servers - check domain security issues, check to make sure the linked servers are talking properly. did I see a fielstream in there somewhere ? are you using the new features of 2008 ?

are you testing any char to int conversions ? (nah just kidding on that one -  but thought it might make you smile if for only half a second).
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
yes.  my 2008 box is 64x

everything that i am seeing suggests a problem between the two engines.  i have ample logs to support this, but no clear reason behind what, specifically, is causing this.  i HATE tech support.  i used to have premier msft support, which was fab.  don't have premier anymore.  i never call their support unless absolutely necessary... and it's always laughable.  always.  

gotta move forward, i suppose.  potentially it's time to get them on the phone
0
 
LVL 51

Expert Comment

by:Mark Wills
Comment Utility
yep, there are a few gotcha's with some combo's of 64bit - if it were my box, I would be starting to chat. We can probably help you get to the bottom of it, but they will most likely have a hit list of specific questions and might log on.
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
the smilie is appreciated....

i am not using filestream, but yes, at installation i chose to enable only for tsql access.  simply looking forward to the potential implementation.    problematic?  disable?  
the linked srvs are all talking to each other.  that was all set up / tested before deployment.  i assume were there a problem w/the linked communication, i would have seen it before now.

and remember, all that stuff is intermittently failing.  one moment, perfect.  fast.  fully functional AND accurate.  the next, it timesout.  deadlocks.  fails completely.

when i put this guy up, i beat it up for several days pre-deployment.  just exhausting the box, analyzing performance and looking for problems.  i didn't see anything bad at all.  in fact, i was very pleased w/the performance on all counts.   put it in tuesday of last week.  till friday, very clean.  then eod friday just one failure.  saturday another, and sunday thru tuesday, several.  only getting worse, from last night at 12:01AM until now, it's been taking me down.
0
 
LVL 51

Expert Comment

by:Mark Wills
Comment Utility
If you are not using right now, then get rid of it, can add it back in later. Need to exclude all and any possibility to help narrow down the problems.

Are the timeouts all because of deadlocks ?

Are the linked server processes just going from 2008 back to 2000 or is there some also going from 2000 up to 2008 ?

It is being intermittent  that is the big challenge... We can still chat, but would get the support guys involved. I have had a couple of near fatalities with 64bit versions of SQL2008 on Server 2008.
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
agreed.  sp_configure'd, but won't take affect till a svc restart
yes, i believe so.  the timeouts are consistent with the deadlocks, so i'm guessing they go hand in hand
thus far, the only definitive problem between the linked srvs was from v2008 back to v2000

sh*t
0
 
LVL 51

Expert Comment

by:Mark Wills
Comment Utility
are the tables being hit by the link back to 2000 also being updated directly on 2000 ?

that isn't what I said :)
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
not sure what you mean there, mark.  both directions, i have reads and writes happening.  locally and across servers.  

one example (of many):
procedureA compares serverA to serverB, writes discrepancies local to a working table and then pushes them across to serverB, updates are done on both instances upon completion

this proc can be fired from v2000, in which case it remotes to v2008
or it can be fired from v2008, in which case it remotes to v2000

0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 51

Expert Comment

by:Mark Wills
Comment Utility
have you got all the latest ? there was an upgrade to the 2008 feature pack in April which does include the native client (also don't forget it is now SQLNCLI10 and the slightly older one is still SQLNCLI ) anyway have a look at and see if it is in fact newer...  http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=b33d2c78-1059-4ce2-b80d-2343c099bcb4
0
 
LVL 51

Expert Comment

by:Mark Wills
Comment Utility
so, programmatically managing two - way replication. That makes it more involved.

I hate to bail, but it is 5:45 am "down here" and I really must get some sleep.  I will be back though, and no doubt dream of linked servers...

I am sure AngelIII is still hanging around, and might be worth getting that phone call started...

0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
it's cool, mr. wills.  get some rest.  i called msft.  business revenue is at risk, production is hindered.... they'll call me back in two hours.     that's the support i was referring to in those slightly negative comments above.

i'll figure something out between now and then....
0
 
LVL 7

Expert Comment

by:simonsabin
Comment Utility
I am guessing you are running STd edition of SQL 2008.

The working set issue is an issue with the OS paging SQL. What this means is that you could end up with statements taking longer and thus causing deadlocks. http://sqlblogcasts.com/blogs/simons/archive/2009/03/10/A-significant-part-of-sql-server-process-memory-has-been-paged-out.aspx a change is planned for a CU to SQL 2005 and SQL 2008 http://blogs.msdn.com/psssql/archive/2009/04/24/sql-server-locked-pages-and-standard-sku.aspx

In the meantime your best bet is to contact support who should be able to help you resolve that issue with updated drivers etc.

If you are using Enterprise edition you can use give the service account "lock pages in memory" permission and the problem should be alleviated.

There have been significant changes to the linked server functionality in 2005 and 2008. I am not sure how those options are affected wen connecting to 2000. Support should be able to help.

0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
No.  It's enterprise.
0
 
LVL 7

Expert Comment

by:simonsabin
Comment Utility
OK is this a dedicated SQL box?

If it is then configure Max server memory with 5GB and then give the service account lock pages in memory and restart the server.

With lock pages in memory you have to be careful if you are running other applications, and also make sure the OS has enough memory. You could stretch to 6GB but I would be careful.
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
Yes., all of my SQL's are dedicated machines.  

I've got them on the phone -- having sent my logs which very clearly reference deadlocks and native client connect errors from v2008 to v2000 linked server, they have indicated

    '  the issue is with SQL Deadlocks and SQL Performance degradation happening  '

this is going to be a long night.

simonsabin, in parallell w/all my upgrade to 08 efforts, i have been doing a lot of digging for the 'ideal' config within the new engine.  best practices, tips, etc.  min/max ram, these worry me a little... as i said, all of my boxes are dedicated, and i'm sure you've seen all the jabber out there how in that case, w/as much ram as i am using, it's often not necessary to up the max.  if the box is dedicated, let SQL dynamically allocate the ram for best perf.
http://www.sql-server-performance.com/tips/sql_server_configuration_settings_p4.aspx

i am not arguing your suggestion, i am just asking for reasoning behind it.  why do you say up it to 5G?  also, it was my understanding that lock pages in memory was not necessary in 64x
http://msdn.microsoft.com/en-us/library/ms190730.aspx

Please elaborate a bit, so I can better understand.
0
 
LVL 7

Accepted Solution

by:
simonsabin earned 300 total points
Comment Utility
With 64 bit systems, you don't have to configure SQL with AWE for SQL to use > 4GB. However if the service account has lock pages in memory privildge then SQL will use the AWE api. The benefit of this is that it reserves the memory for SQL and cannot be trimmed by the OS (the situation you are facing). Otherwise the memory allocation is done using the normal API resulting in the OS trimming the working set and having huge performance problems

With regard max server memory, I prefer to have a known entity. It is a grey line as you start getting over 5Gb as to how much memory should be allocated to non SQL stuff, OS, drivers, backup software etc.
The main reason for setting max server memory in conjunction with locked pages in memory is to avoid the issue where the OS needs memory and it can't get it because SQL has the memory locked.

http://blogs.msdn.com/slavao/archive/2005/08/31/458545.aspx
http://blogs.msdn.com/slavao/archive/2005/04/29/413425.aspx

Whilst you can probably improve deadlocks with changes to application/database etc, if you did't have deadlock before I would suggest that the deadlocks are occurring because of the performance problems due to the working set being trimmed.
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
http://support.microsoft.com/kb/918483
In theory, I have addressed things.  You are correct... I have enabled AWE, upped my MAX RAM and changed svc account to lock pages in ram.  I have also enabled 1204 trace flag on the v2000 resource that keeps deadlocking.  Thus, if the problem has not been addressed, the next deadlock occurrence will hopefully generate more informtion to help me better diagnose the problem.

Its not a problem with the two engines  v2000 vs v2008.  It is a problem w/my memory config on a 64x v2008 instance.  Because it's 64x, the VAS is not limited to my physical ram (8g).  It ignores the 8G physical ram and uses the VAS cap which is 8TB.  (the engineer i spoke to said 2TB)   As a result, SQL doesnt see the physical ram limitation and keeps chewing the VAS, which causes the OS to page out the SQL Server working set.  Their 'symptoms' are precisely what I've been seeing.  

"      The performance of SQL Server 2005 decreases suddenly.
"      SQL Server 2005 stops responding for a short time.
"      A time-out occurs for applications that connect to SQL Server 2005.
"      Problems occur when you run even simple commands or use applications on the system.

With 32x, I guess the default memory config, or allowing the dedicated SQL's to manage dynamically, is preferred for the 'norm' or lesser performant resources.  But these 64x boxes with ram in excess of 4GB need to be configured this way in order to ensure SQL sees it's memory limitations.

So... I got that after four engineers and all kindsa back 'n' forth with msft.  Now that I'm read your post, I'm thinking that's exaclty what you just said, too.

Thank you, simonsabin.

Change made.  We should know soon.  cross your fingers
extremely tired, going on 42hrs awake... and i have to get up in just a few...
please overlook any confusion or type-o's up there

0
 
LVL 51

Assisted Solution

by:Mark Wills
Mark Wills earned 200 total points
Comment Utility
Hi dbaSQL,

Hope to hear that the few changes have made a world of difference. All I can do is echo a few thoughts....

Locked Pages in 64bit are an interesting beast and how they have managed it is by using the AWE engine. It is important to manage memory in a 64bit environment, but equally easy to stuff it up. Lock pages have specific use, so need to be careful how you configure your memory. Need to configure Lock Pages in Memory privilege  for the account that runs SQL Server. You do not have to enable AWE - it uses the engine...

From a troubleshooting perspective, an important point is that the SQL Server buffer pool uses AWE allocated memory; however, only database (hashed) pages can mapped or unmapped to take advantage of using additional memory allocated through AWE.

You can use the sys.dm_os_memory_clerks DMV as follows to find out how much memory SQL Server has allocated through the AWE mechanism.

select  sum(awe_allocated_kb) / 1024 as [AWE allocated, Mb]
from    sys.dm_os_memory_clerks

Some of the above was extractracted from the attachment below - if you believe it is resource usage / consumption initiated problem, or even the result of other issues, then your really need to read the document below. It is on the MS website (somewhere)... but thought I would save your tired state the efforts of finding...


Also, might be worth adding the table hint WITH (NOLOCK) on any of those procedures where data is being referrenced, and you are satisfied that it would be committed data.




TShootPerfProbs2008-1-.docx
0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
>>Also, might be worth adding the table hint WITH (NOLOCK) on any of those procedures where data is being referrenced, and you are satisfied that it would be committed data.<<
Already in place.

>>You can use the sys.dm_os_memory_clerks DMV as follows to find out how much memory SQL Server has allocated through the AWE mechanism.<<
I recently attended EurpPASS, and went to an excellent session in this regard. I suppose you could say this probelm nailed me before I could dig into thos dmv's better.  Gotta get back onto my resource governor, data collections and activity monitor.  Surely that would have helped me find this before it reached this point.  


>>... but thought I would save your tired state the efforts of finding... <<
Thank you, thank you.....


Back soon w/status and to award/close this thing.

0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
I see that people work while I sleep :)
0
 
LVL 7

Expert Comment

by:simonsabin
Comment Utility
angelIII You sleep I thought you were a robot :)
0
 
LVL 51

Expert Comment

by:Mark Wills
Comment Utility
angelIII - all a matter of perspective, maybe you sleep while people work :)  and sleep is maybe euphamistically getting a battery charge :) :)
0
 
LVL 17

Author Closing Comment

by:dbaSQL
Comment Utility
Quite a learning experience.  Ultimately, we've enabled AWE, lock pages in memory, and maxed the ram at 6.5G.

I hadn't previously enabled the AWE or the lock pages in ram due to the MSFT docs that say it isn't needed:
http://technet.microsoft.com/en-us/library/ms190673.aspx
' AWE is not required and cannot be configured on 64-bit operating systems.'
http://msdn.microsoft.com/en-us/library/ms190730.aspx
'Locking pages in memory is not required on 64-bit operating systems.'

BUT.. I learned after the fact that this is due to the VAS being unlimited on 64x.  VAS doesn't see my 8G, nor does SQL.  So SQL keeps chewing the VAS, paging out again and again, and causes the OS to page my SQL working set.

http://support.microsoft.com/kb/918483

Very interesting.  I guess I've a few config changes to make on my 64x backend.  Intersting thing to note;  apparently this has always been the case, regardless of the sql edition, on 64x resources.  I am betting it presented itself now simply due to the fact that 08 is much more memory intense than v2K.  that's my guess, anyway

Thank you very much.  The time and input is seriously appreciated.

sleep is still needed.... ;-)
0
 
LVL 51

Expert Comment

by:Mark Wills
Comment Utility
>> ... Surely that would have helped me find this before it reached this point <<

dbaSQL, it is always surprising (?) remembering the lessons we had previously learned after the event (as in "Ahhh yes, of course, that's why we do this"), and then the reasons as to why those lessons are important come to taunt us when we do not always implement/follow up on a good idea at that time. I doubt there is any DBA in the world (maybe apart from angelIII and Simon of course) that have not been taught that lesson via the school of hard knocks, some of us more than once.

I think you have done exceptionally well. Must have been getting very ugly there for a while, and throughout the whole time you remained cool, cognitive and open to discussion. That is probably one facet of the job that is hardest to achieve and by all accounts you have done very well.

Very happy to hear that the problem has been solved, and very grateful that Simon responded from the other thread, and was good enough to stop in and pretty much identify straight up. MVP's are good people, they know their stuff, and again you seem to attract two at a time (angelIII and simonsabin).

Hope you have plenty of happy thoughts in your well earned and long overdue rest....





0
 
LVL 17

Author Comment

by:dbaSQL
Comment Utility
It is from the school of hard knocks that it sticks, you know?  lessons learned well, to say the least

>>I think you have done exceptionally well. Must have been getting very ugly there for a while, and throughout the whole time you remained cool, cognitive and open to discussion.  That is probably one facet of the job that is hardest to achieve and by all accounts you have done very well.

Comments like these are very pleasing.  Very satisfying.
Thank you very much, Mr. Wills.  

happy thoughts.... definitely.  :-)
0

Featured Post

Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

Join & Write a Comment

Suggested Solutions

Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
JSON is being used more and more, besides XML, and you surely wanted to parse the data out into SQL instead of doing it in some Javascript. The below function in SQL Server can do the job for you, returning a quick table with the parsed data.
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now