Opened 10 years ago
Last modified 10 years ago
#24224 closed Cleanup/optimization
sqlmigrate is slow — at Initial Version
Reported by: | TorstenRottmann | Owned by: | nobody |
---|---|---|---|
Component: | Migrations | Version: | 1.7 |
Severity: | Normal | Keywords: | migration slow |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
When requesting an sqlmigrate (or when do a test or migrate also), it takes a very long time to compute the sql for a particular app migration. This app has some 78 models and is highly interconnected with ForeignKeys (100+).
I ran the sqlmigrate through the profiler an got these results:
74628418 function calls (74229555 primitive calls) in 3653.843 seconds Ordered by: internal time ncalls tottime percall cumtime percall filename:lineno(function) 4 3519.805 879.951 3519.805 879.951 {method 'write' of 'file' objects} 552977 18.609 0.000 29.893 0.000 __init__.py:292(deconstruct) 40096 14.244 0.000 20.051 0.001 related.py:276(swappable_setting) 318698 11.924 0.000 21.114 0.000 __init__.py:1011(__init__) 575182 9.569 0.000 12.634 0.000 __init__.py:123(__init__) 571729 7.336 0.000 97.027 0.000 state.py:277(construct_fields) 16773896/16722010 6.750 0.000 6.790 0.000 {getattr} 85138 2.849 0.000 4.883 0.000 __init__.py:1092(__init__) 553122/553106 2.546 0.000 6.503 0.000 {__import__} 637429/318719 1.916 0.000 2.146 0.000 deconstruct.py:15(__new__) 3236790 1.912 0.000 1.912 0.000 {method 'startswith' of 'unicode' objects} 3881367/3881365 1.891 0.000 4.462 0.000 {isinstance} 5915601 1.566 0.000 1.841 0.000 options.py:283(_swapped) 43868 1.525 0.000 1.525 0.000 base.py:33(subclass_exception) 901715 1.508 0.000 2.571 0.000 abc.py:128(__instancecheck__) 21946/19820 1.486 0.000 24.646 0.001 base.py:61(__new__) ...
Waiting more than a minute for a test to start is very annoying ...
Note:
See TracTickets
for help on using tickets.