Before I explain my problem, I would like to share some information about the context.
System we have a web site that is used to record tickets by users from many destinations. We have 1370 active users, 1012 destinations. Daily, they record around 30000 tickets, and at this moment we have a total of 10637019 tickets. Each ticket has an average of three positions.
In the system we also save the clients for each ticket, and when we want to record a new ticket, we choose a specific client from the list or we create a new one. At this moment we have 3763787 clients and every day we save 4500 new clients more.
Server We have two servers, one for web site and another for database. We use Microsoft Technology, what it means we have IIS7 and SQL Server 2008 R2. Data base server has 6 CPU 2.9GHz, 8 GB RAM.
Problem The problem that we have comes when we want to choose one client for a new ticket. We are using a web control with autocomplete to choose it. The autocomplete process runs at the data base server using a Full Text Index based on the clients's full name. The Full Text Index is populated every nigth.
We have a query in the form of:
select
clientId
,name
,lastName
,fullName (calculated column in the clients table)
,gender
,birthDate
,type
from clients
where contains(fullName, '"Carl*" AND "Gari*"')
This query is using 63% of the CPU resources in the server and we want to reduce that number.
How can we increase the performance of this? Is there an alternative to use autocomplete search with SQL Server 2008 R2?
Thanks in advance,