Analyse what caused a pagesplit afterwards? Ok normally we have 0-20 page splits per second, but last night it spiked to ~500.

Now is there any way to figure out what caused it?

I know i can run the following to find mid page splits but it doesn't go that far back.

SELECT COUNT(1) AS NumberOfSplits, AllocUnitName, Context FROM fn_dblog(NULL,NULL) WHERE Operation = 'LOP_DELETE_SPLIT' GROUP BY AllocUnitName, Context ORDER BY NumberOfSplits DESC


I have both full backups and log backups if that helps?
I must say first that using fn_dblog and fn_dump_dblog is unsupported as these commands are not supported by Microsoft. Jonathan Kehayias in his article even pointed out that using fn_dump_dblog multiple times has grave performance implication so use these undocumented commands on your own risk. There is also a way to track page splits, not perfectly though but will help, using DMV Sys.dm_db_index_operational_stats the columns leaf_allocation_count in output points to page split which occurred for index and nonleaf_allocation_count gives you page allocation due to page splits read the documentation please. You can include object(table) for which you want to track page split by editing the query 

Below is the code which may tell you page splits for index and heap does not have page splits they have forwarding pointers

select
ios.index_id,
o.name as Object_Name,
i.name as Index_Name, 
ios.leaf_allocation_count as Page_split_for_index,
ios.nonleaf_allocation_count Page_allocation_caused_by_pagesplit
from sys.dm_db_index_operational_stats(DB_ID(N'db_name'),Null,Null,Null) ios
join
sys.indexes i
on
ios.index_id=i.index_id
join
sys.objects o
on 
ios.object_id=o.object_id
where o.type_desc='user_table'


Other method is by using Extended events, below link by Jonathan has steps( applicable to SQL 2012 or later)

http://www.sqlskills.com/blogs/jonathan/tracking-problematic-pages-splits-in-sql-server-2012-extended-events-no-really-this-time/

Ofcourse you can read below article by Paul Randal where he showed how to track page split using fn_dblog command

http://www.sqlskills.com/blogs/paul/tracking-page-splits-using-the-transaction-log/