tengiz wrote:zVlad wrote:On my question:
"...why don't change it to case sensitive? Like we have in DB2."
our SQL Server guy answered:
"...will be performance hit to the database. using UCase(..) will force SQL Server to scan the table rather than utilizing indexes. and more problem with table joins."
zVlad, по этим обрывкам информации непонятно вообще в чём была исходная проблема. Переход на case insensitive, напротив, немного поднимет производительность, .......
You mean "case sensitive", don't you?
I knew about just one problem: due to case insensetivity on SQL Server site and "case sensetivity" (I disagree with this term applied to this matters, let's discuss it latter) on DB2 site we had and have problems when if something happen in DB2, say, DELETE using value which has two presentations, for example: Fee2, and FEE2 then DB2 hadles those values as two different values, while SQL Server doesn't. As a result, replicated table doesn't match to source table.
This problem could be fixed be making SQL Server set up to case sensitive mode. Our guy says there are applications which rely on default SQL Server's insensitivity, and in order to produce same reports, as expected, they would have to use functions like Ucase, which will lead to poor performance due to table scan.
About "case sensetivity" in DB2. DB2 is not case depended product at all. DB2 stores and handle character data exactly in that form how those data was sent from application program to DB2 to store them, and DB2 retrieves those data and makes all comparisons without any stupid (you could say wise, which is in this case absolutaly the same shit) assumptions about.
Thanks to heavens, people who made DB2 were wise enough to realize that this is not a database manager's business to handle characters cases, instead, this is an application program's business. DB2 has functions LCASE or LOWER, and UCASE or UPPER, that's all anybody should expect from RDBMS. Period.