The following queries worked for me on MySQL in order to delete closed tickets and its attachments older than 15 months, hope this be useful for you
DELETE FROM ost_ticket WHERE closed < DATE_SUB(NOW(),INTERVAL 15 MONTH);
DELETE FROM ost_thread WHERE object_type = 'T' AND object_id NOT IN (SELECT ticket_id FROM ost_ticket);
DELETE FROM ost_thread_collaborator WHERE thread_id NOT IN (SELECT id FROM ost_thread);
DELETE FROM ost_thread_entry WHERE thread_id NOT IN (SELECT id FROM ost_thread);
DELETE FROM ost_thread_entry_email WHERE thread_entry_id NOT IN (SELECT id FROM ost_thread_entry);
DELETE FROM ost_thread_event WHERE thread_id NOT IN (SELECT id FROM ost_thread);
DELETE FROM ost_ticket__cdata WHERE ticket_id NOT IN (SELECT ticket_id FROM ost_ticket);
DELETE FROM ost_task WHERE object_type = 'T' AND object_id NOT IN (SELECT ticket_id FROM ost_ticket);
DELETE FROM ost_task__cdata WHERE task_id NOT IN (SELECT id FROM ost_task);
DELETE FROM ost_attachment WHERE object_id NOT IN (SELECT id FROM ost_thread_entry);
DELETE FROM ost_file WHERE id NOT IN (SELECT file_id FROM ost_attachment);
DELETE FROM ost_file_chunk WHERE file_id NOT IN (SELECT id FROM ost_file);