MSSQL Stored procedure becomes slow after few days
I would look at your plan cache to see what's happening there. Could be a bad plan, could be multiple single use plans are being generated? Look closer at these DMVs, sys.dm_exec_cached_plans and sys.dm_exec_query_stats, they will give you more insight. This is a small query that I use:

USE master  
GO  
SELECT  
    t1.objtype AS ObjectType,  
    t1.cacheobjtype AS CacheType,  
    COUNT_BIG(*) AS TotalPlans,
    SUM(CAST(t1.size_in_bytes AS DECIMAL(18, 2))) / 1024 / 1024 AS TotalSizeInMB,  
    AVG(CONVERT(bigint, t1.usecounts)) AS AvgUseCount,  
    SUM(CAST((CASE WHEN t1.usecounts = 1 THEN t1.size_in_bytes  
    ELSE 0  
    END) AS DECIMAL(18, 2))) / 1024 / 1024 AS SingleUseSizeInMB,  
    SUM(CASE WHEN t1.usecounts = 1 THEN 1  
        ELSE 0  
        END) AS CountOfSingleUsePlans  
FROM sys.dm_exec_cached_plans t1  
GROUP BY  
    t1.objtype,  
    t1.cacheobjtype  
ORDER BY 3 DESC