Why searching the Web is slow.
The Web is nothing more than a really large graph. The problem is that when you get a node, you don't want to walk over to another node that you have already walked (within some constraint). As I watch Sql Profiler and see that I am calling my stored procedure to add nodes to my Search Url table, I see that it is literally being called hundreds of times per minute, yet I don't see the URLs added at anywhere near the same rate. Then **doink** it hit me. Within my sproc, I check and if the URL already exists in my Search Url table, I don't add it again. What am I getting at? Well, I have the logic to see if the URL already exists within the table within my sproc. I only add a URL if the URL does not already exist within the URL table. The end result is that my routine expends significant processing power to search and see if the URL already exists within the Search URL table before it actually adds the entry to the table. Why do things like this? Well, I don't want to add entries and then merely check them before I input them into the Search Results table. If I did things that way, I would most likely end up with infinite recursion, which would be bad.
Wally