NAME
DBIx::Class::Helper::ResultSet::Explain - Get query plan for a ResultSet
SYNOPSIS
This module mostly makes sense to be used without setting as a component:
use
Devel::Dwarn;
Dwarn DBIx::Class::ResultSet::Explain::explain(
$rs
)
But as usual, if you prefer to use it as a component here's how:
package
MyApp::Schema::ResultSet::Foo;
__PACKAGE__->load_components(
qw{Helper::ResultSet::Explain}
);
...
1;
And then in a script or something:
use
Devel::Dwarn;
Dwarn
$rs
->explain;
DESCRIPTION
This is just a handy little tool that gives you the query plan for a given ResultSet. The output is in no way normalized, so just treat it as a debug tool or something. The only supported DB's are those listed below. Have fun!
See "NOTE" in DBIx::Class::Helper::ResultSet for a nice way to apply it to your entire schema.
EXAMPLE OUTPUT FROM SUPPORTED DB's
SQlite
[
[
0,
"Init"
,
0,
10,
0,
undef
,
0,
undef
,
],
[
1,
"OpenRead"
,
0,
3,
0,
4,
0,
undef
,
],
[
2,
"Rewind"
,
0,
9,
0,
undef
,
0,
undef
,
],
[
3,
"Rowid"
,
0,
1,
0,
undef
,
0,
undef
,
],
[
4,
"Column"
,
0,
1,
2,
undef
,
0,
undef
,
],
[
5,
"Column"
,
0,
2,
3,
undef
,
0,
undef
,
],
[
6,
"Column"
,
0,
3,
4,
undef
,
0,
undef
,
],
[
7,
"ResultRow"
,
1,
4,
0,
undef
,
0,
undef
,
],
[
8,
"Next"
,
0,
3,
0,
undef
,
1,
undef
,
],
[
9,
"Halt"
,
0,
0,
0,
undef
,
0,
undef
,
],
[
10,
"Transaction"
,
0,
0,
17,
0,
1,
undef
,
],
[
11,
"Goto"
,
0,
1,
0,
undef
,
0,
undef
,
],
]
Pg
[
[
"Seq Scan on \"Gnarly\" me (cost=0.00..16.20 rows=620 width=100) (actual time=0.003..0.003 rows=0 loops=1)"
,
],
[
"Planning time: 0.102 ms"
,
],
[
"Execution time: 0.023 ms"
,
],
]
mysql
[
[
1,
"SIMPLE"
,
"me"
,
"ALL"
,
undef
,
undef
,
undef
,
undef
,
1,
100,
""
,
],
]
AUTHOR
Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2024 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.