Daniel Blondowski, April 25, 2014 - 1:51 pm UTC
Bingo. They are using a string in the code. Hopefully I can get them to change it:)
A reader, April 26, 2014 - 4:04 pm UTC
Developers are telling me that they can't change their code to bind raw or use the rawtohex/hextoraw functions in their queries…for whatever unknown reason.
When we originally talked about setting up Primary Keys using GUID, they wanted to store them as varchars, but I insisted on using raw…mainly because that requires less storage and less IO when quering those columns.
However those deletes have a measurable impact on the server performance, so I'm thinking about letting them convert the PK to varchar. Is this a horrible idea? Besides increases storage, I"m also concerned that my cache will become less effective long term, as we would be storing more blocks for the same data.
I wouldn't be so worried if it was just a couple of tables, but long term this would be approach for all the tables.
Querying UUIDs
Keith, May 19, 2014 - 8:52 pm UTC
While Tom is 100% correct, I also believe Oracle has some culpability. A UUID is a blob. The string representation is just a human convenience. I believe Oracle should implicitly cast the string to a raw not the other way around (either way Oracle is performing an implicit cast). If you are going to do an implicit cast do the one that is desired 99.9% of the time.
A reader, May 27, 2014 - 1:03 pm UTC
You could also leave the column as raw and either add an index on hextoraw(id) or change the primary key to be hextoraw(id).
A reader, May 27, 2014 - 1:04 pm UTC
meant rawtohex, not hextoraw
A reader, November 03, 2014 - 3:47 pm UTC
analyze the table and indexes. That should resolve. Or try rebuilding the primary key
A reader, November 17, 2014 - 7:06 pm UTC
Create a function based index. That should solve the issue