We have a number of Views, Stored Procs, Table Values and Scalar functions.
How can we see how often or even how many times these have been called from within SQL Server?
Do we need to edit each one to update a table on each call to get this, or does SQL server keep this information somewhere?
This is one of Glenn Berry's DMV queries. It counts how many times a cached stored procedure has been executed (filtered by the current database):
Note: SQL Server keeps info only since last service restart and may also discard info under memory pressure.
Also note that execution count alone does not tell the whole picture. It's often better to identify the most costly queries and improve them. I usually start with highest logical reads (this is another of Glenn's):
[Also, note: you might have processes that are periodically scheduled (say once per month). So, it's not 100% possible to identify stored procedures that are not called using these.]