Looks like the ASE conference for 2015 is approaching... hope to see you all there.
In case anybody is interested, I have 4 sessions; 2 during the conference, and 2 post-conference half-day sessions. I've answered a few questions from "the press" here:
http://my.isug.com/blog/session-previews-jeff-garbus
The conference blog is here:
http://my.isug.com/p/bl/et/blogid=217
I have it on Good Authority (from a board member) that the early bird registration specials have been extended; I hope to see you there.
Thursday, February 26, 2015
Wednesday, November 5, 2014
Data from a corrupt ASE table
I'm pleasantly surprised this worked.
Issue: A corrupt table (and corrupt backup, which somehow dbcc did not pick up) was kicking out errors at scan time. BCP failed at abotu 600,000 out of 800,000 rows. We could bcp past the error (sometimes you can bcp to the error, then bcp from there forwards.
So, I did something ugly:
1) build a list of all table IDs into a temp table (this can be done with an index scan, the index was not corrupt).
2) using a cursor, walk that list, and request those rows one at a time, logging into the temp table the result of the request
When I was done, I found that the rows that were inaccessable via a table scan were accessible via index traversal. We got lucky.
NOTE: I'd have written prettier code if I know it was going into my blog.
Hope this helps somebody out.
end
Issue: A corrupt table (and corrupt backup, which somehow dbcc did not pick up) was kicking out errors at scan time. BCP failed at abotu 600,000 out of 800,000 rows. We could bcp past the error (sometimes you can bcp to the error, then bcp from there forwards.
So, I did something ugly:
1) build a list of all table IDs into a temp table (this can be done with an index scan, the index was not corrupt).
2) using a cursor, walk that list, and request those rows one at a time, logging into the temp table the result of the request
When I was done, I found that the rows that were inaccessable via a table scan were accessible via index traversal. We got lucky.
NOTE: I'd have written prettier code if I know it was going into my blog.
Hope this helps somebody out.
declare @curRID int, @char varchar(10)
while 1 = 1
begin
select @curRID
= min(RoomId) from RoomIDList where processed = 0
if @@rowcount
= 0 break
update
RoomIDList set processed = 1 where RoomId = @curRID
insert
RoomTemp select * from web_app.Room where RoomId = @curRID
update RoomIDList set processed = 2 where
RoomId = @curRID
select @char =
convert(varchar(10),@curRID)
print @char
Wednesday, October 8, 2014
Seeking tips for the new ASE 16 Admin book
The new
"Administrator's Guide to ASE 16" is coming out this year. I like
to add a section, "Tips from the world at large" because I think
everybody has an experience worth sharing. Please send the tip to:
|
Wednesday, February 5, 2014
Max utility parallel degree
Running ASE 15.7 at a high patch level? Say, 100 or higher? Having trouble running BCP, index creation, etc. in parallel? Here's why:
There's a new configuration parameter.
There's a new configuration parameter.
max util parallel degree specifies the server-wide maximum number
of worker processes allowed per query used by the create
index with consumers and update stats with consumers
commands.
Enjoy!
Wednesday, September 18, 2013
New ASE content being added to Confio's site
Confio, a partner of ours with an awesome performance monotoring tool (call us if we can arrange a demo), has published extracts of several of our articles on their site... please go take a look!
http://www.confio.com/logicalread/results/?s=garbus
http://www.confio.com/logicalread/results/?s=garbus
Wednesday, April 17, 2013
A bit too new to blogging....? How to ask me questions...
Hi, all,
Looks like I've had some comments sitting out there for a couple of years of which I was unaware... (I'm much better at database things...)
In the future, you're welcome to post here, but for a quick answer, email me directly, jeff@soaringeagle.biz.
Have a fantastic day!
Jeff
Looks like I've had some comments sitting out there for a couple of years of which I was unaware... (I'm much better at database things...)
In the future, you're welcome to post here, but for a quick answer, email me directly, jeff@soaringeagle.biz.
Have a fantastic day!
Jeff
Thursday, April 4, 2013
What's the plan of the process currently spinning out of control?
Sometimes you want to know what's going on NOW, not later after everything is done running. ASE 15 & later, you can run sp_showplan, which will get you that information while the spid is running.
To display the showplan output for the current SQL statement without specifying the batch_id, context_id, or stmt_num:
sp_showplan spid, batch_id output, context_id output, stmt_num output
To display the showplan output for the current SQL statement without specifying the batch_id, context_id, or stmt_num:
sp_showplan spid, null, null, null
Subscribe to:
Posts (Atom)