kipusoep / UrlTracker

The Url Tracker for Umbraco
MIT License
54 stars 61 forks source link

Performance issues #181

Open quadhenke opened 6 years ago

quadhenke commented 6 years ago

Hi, we have performance issues on a couple of larger sites.

When we have traffic spikes resulting in many 404s, UrlTracker makes many SQL queries, causing the site to slow down and stop/restart.

We have experienced sql queries that take minutes, which makes us suspect there are circular references due to multiple rewrites.

Is there any way to avoid so many databases queries from UrlUracker? Can it be saved in memory(cache) instead of making database requests? Is there any internal safeguard against circular references?

The sites are not load balanced but are located on Azure. Version is 3.13.1, 404 logging is disabled.

daniel-chenery commented 6 years ago

Hi,

What version of the plugin are you using? There were some performance issues in older versions. However, I haven't really tested with Azure.

kipusoep commented 6 years ago

I'd disable 404 logging.

akeilox commented 6 years ago

is 404 logging disabled on the UI ?

quadhenke commented 6 years ago

version is 3.13.1, 404 logging is disabled.

daniel-chenery commented 6 years ago

@akeilox It's an AppSetting

@quadhenke There were some performance problems with 3.13.x (#166, #169). I'd try 3.14.1 see if that helps at all.

quadhenke commented 6 years ago

Thanks that sounds promising @daniel-chenery will try 3.14.1 in coming Sprint.

LukaszBancarz commented 6 years ago

Hi guys, I've tried out version 3.14.1 and it seems that the performace of 404 view in umbraco is still the same as it was before (which is bad). My setup is Umbraco 7.5.10 and Url Tracker 3.14.1 (3.11 before) running on Azure AppService. I have approx 250K rows in icUrlTracker table. I've noticed that the 404 view queries database using that SQL query: (@is404 int,@redirectHttpCode int)SELECT * FROM icUrlTracker WHERE Is404 = @is404 AND RedirectHttpCode != @redirectHttpCode It takes about 8sec to execute on database. The wiew has a paging included (20 rows by default) but no matter which pagesize I choose the SQL query looks exactly the same so I have the feeling that paging is done in memory after getting all 250K rows. Could that be fixed?

kipusoep commented 6 years ago

Sure, create a PR with the fix?