Making them solid is not the problem.
To many collissions checks / tick will bring performance to its knee's.
First a little explination. If you write a line of code in Construct, that is not actualy the code. Each line of code in construct is in fact a little program. So, if you write 'on coliision with astroids', you wrote a program that loops trough each astroid and checks if it collides with your ship. And thats a heavy calculation, for ALL hundreds of astroids.
To keep this under control you must include less asteroids in the calculations. One way to do this is ... with 'pick nearest'. A condition 'pick nearest astroid to the ships position' combined with (and in that order) a condition 'is colliding with ship'. If the asteroids are to close to each other, this will miss some collisions. But is blazing fast.
An other way is to 'pick by comparisation'. Expression = distance (astroid.x,astroid.y,ship.x,ship.y) .. object is astroids ... value is lets say 150 (depending on the size of you layout). Combine that again with the 'on collision with'
What happens is ... it again will loop trough all astroids to test that distance, but without checking collision. And that is a speedy calculation. Now it picks all astroids that are 150 pixels away from ship. All the others are not picked. And the collission condition will only check those (close) asteroids for collisions.