It will often occur that we need to search a large character string in a relational database, something like an email address, postal address, etc.
For the most part, when we do such searches, we're searching for a sub-string within that large string of characters.
However, for instances where we know we need an equivalency search, we can make things more efficient by generating a hash of the string and then storing that in an indexed column.
This can be done in all 3 of the major RDBMS platforms. Links below:
MSSQL uses the CHECKSUM() function.
DB2 LUW uses the DBMS_UTILITY.GET_HASH_VALUE() function.
Oracle uses the ORA_HASH function.
This article by Jeff Reinhard over at SQLServerCentral.com is what inspired me to look for the similar function in DB2 & Oracle, and it does a very nice job of explaining the use case for this using an e-mail address scenario.
If anyone knows how to do this in postgressql or MySQL, I'd love to have you add a few words or link in the comments. Thanks! :)
Showing posts with label MS SQL Server. Show all posts
Showing posts with label MS SQL Server. Show all posts
Friday, September 15, 2017
Thursday, March 28, 2013
Detecting Transaction Isolation Level through Profiler Trace and other means on MS SQL Server 2005
I doubt that this comes up often, but I find myself in a bit of an argument about what isolation level will be used for transactions in our SQL Server database when the transaction is initiated by WebSphere. There are various documents that indicate how WebSphere can over ride this value.
I decided to dig into this a bit further.
I have only found two places where the transaction isolation level is appearing:
1 - Sessions:Existing Connection.Text Data
2 - In a deadlock trace as part of the XML output.
If anyone can find it elsewhere, I'd love to hear from you. However, this makes sense, since this is more-or-less controlled at the session level.
QUERY:
If found that
To get the TIL for *your session*, you can run the following query:
I decided to dig into this a bit further.
TRACE:
In doing so, I found that I could monitor our SQL Server DB to determine this.I have only found two places where the transaction isolation level is appearing:
1 - Sessions:Existing Connection.Text Data
2 - In a deadlock trace as part of the XML output.
If anyone can find it elsewhere, I'd love to hear from you. However, this makes sense, since this is more-or-less controlled at the session level.
QUERY:
If found that
DBCC USEROPTIONS
would give me the *default* TIL for the db, but that if that TIL was altered by the session, it would not reflect that.To get the TIL for *your session*, you can run the following query:
SELECT CASE transaction_isolation_level WHEN 0 THEN 'Unspecified' WHEN 1 THEN 'ReadUncomitted' WHEN 2 THEN 'Readcomitted' WHEN 3 THEN 'Repeatable' WHEN 4 THEN 'Serializable' WHEN 5 THEN 'Snapshot' END AS TRANSACTION_ISOLATION_LEVEL FROM sys.dm_exec_sessions
Credit to StackOverflow question and answer here: http://stackoverflow.com/questions/1038113/how-to-find-current-transaction-level
Subscribe to:
Posts (Atom)
Get Restart log using PowerShell
I'm often curious about a restart on a Windows server system. An easy way to get a list of the restart and what initiated it is to use t...
-
Most of what we're going to want to look at when you're having production issues are available through DMV's. If granti...
-
I’ve been having some trouble getting DBCA to run in order to create databases. Thought I’d share it with you, and thus document it for la...
-
I'm often curious about a restart on a Windows server system. An easy way to get a list of the restart and what initiated it is to use t...