Optimizing Query is very important to improve the performance of the database. Analyse query using query execution plan, create cluster index and non-cluster index and create indexed views
Index is a database object, which can be created on one or more columns (16 Max column combinations). When creating the index will read the column(s) and forms a relevant data structure to minimize the number of data comparisons. The index will improve the performance of data retrieval and adds some overhead on data modification such as create, delete and modify. So it depends on how much data retrieval can be performed on table versus how much of DML (Insert, Delete and Update) operations
Optimizing Query is very important to improve the performance of the database. Analyse query using query execution plan, create cluster index and non-cluster index and create indexed views
Index is a database object, which can be created on one or more columns (16 Max column combinations). When creating the index will read the column(s) and forms a relevant data structure to minimize the number of data comparisons. The index will improve the performance of data retrieval and adds some overhead on data modification such as create, delete and modify. So it depends on how much data retrieval can be performed on table versus how much of DML (Insert, Delete and Update) operations
(** MYSQL DBA Certification Training https://www.edureka.co/mysql-dba **)
This Edureka PPT on SQL Joins will discuss the various types of Joins used in SQL Server with examples. The following topics will be covered in this PPT:
Introduction to SQL
What are Joins?
Types of Joins
FAQs about Joins
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Postgres expert, Bruce Momjian, as he discusses common table expressions (CTEs) and the ability to allow queries to be more imperative, allowing looping and processing hierarchical structures that are normally associated only with imperative languages.
(** MYSQL DBA Certification Training https://www.edureka.co/mysql-dba **)
This Edureka PPT on SQL Joins will discuss the various types of Joins used in SQL Server with examples. The following topics will be covered in this PPT:
Introduction to SQL
What are Joins?
Types of Joins
FAQs about Joins
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Postgres expert, Bruce Momjian, as he discusses common table expressions (CTEs) and the ability to allow queries to be more imperative, allowing looping and processing hierarchical structures that are normally associated only with imperative languages.
15 Ways to Kill Your Mysql Application Performanceguest9912e5
Jay is the North American Community Relations Manager at MySQL. Author of Pro MySQL, Jay has also written articles for Linux Magazine and regularly assists software developers in identifying how to make the most effective use of MySQL. He has given sessions on performance tuning at the MySQL Users Conference, RedHat Summit, NY PHP Conference, OSCON and Ohio LinuxFest, among others.In his abundant free time, when not being pestered by his two needy cats and two noisy dogs, he daydreams in PHP code and ponders the ramifications of __clone().
Structured Query Language (SQL) _ Edu4Sure Training.pptxEdu4Sure
The PPT content is for reference only. The training will be hands-on & practical.
Training: SQL (Structured Query Language)
For any Training & Certificate, please email us at partner@edu4sure.com
or Call/ whatsapp at +91-9555115533
Or visit www.testformula.com (Our LMS to access Self-paced vidoes) or visit www.edu4sure.com
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Designing Great Products: The Power of Design and Leadership by Chief Designe...
SQL Joins and Query Optimization
1. SQL Joins
and Query Optimization
How it works
by Brian Gallagher
www.BrianGallagher.com
G
2. Why
Wh JOIN?
Combine data from multiple tables
Reduces the number of queries needed
Moves processing burden to database
server
Improves data integrity (over combining
data in
d t i program code)
d )
3. Types of JOINs
T f JOIN
INNER
the most common, return all rows with matching records
, g
SELECT * FROM T1 INNER JOIN T2 ON T1.fld1 = T2.fld2
LEFT or LEFT OUTER
return all rows on the left (first) table and right (second)
If no matching record on the right side, NULL-values for each field are returned
SELECT * FROM T1 LEFT OUTER JOIN T2 ON T1 fld1 = T2 fld2 T1.fld1 T2.fld2
FULL or FULL OUTER
return all rows on the left (first) table and right (second)
If no matching record on the left or right side, NULL-values for each field are returned
S
SELECT * FROM T1 FULL OU
C O U OUTER JO JOIN T2 ON T1.fld1 = T2.fld2
O . d . d
CROSS
the least common, return all possible row combinations
SELECT * FROM T1, T2
RIGHT or RIGHT OUTER
Don’t use them without a very good reason.
They do not add any functionality over a LEFT JOIN and make code more confusing
Works the same as the LEFT and LEFT OUTER JOINs, but the second table is the one
which all rows are returned from. These two queries are functionally identical:
SELECT * FROM T1 LEFT JOIN T2 ON T1.fld1 = T2.fld2
SELECT * FROM T2 RIGHT JOIN T1 ON T1.fld1 = T2.fld2
4. Sample T t Data
S l Test D t
Sample Customer and Job records
12. Making Big
M ki it Bi
A CROSS JOIN combines every row on the left
table with every row in the right table
Resulting recordset will b th t t l of b th row
R lti d t ill be the total f both
counts multiplied together
Leftrow has 10 000 records
10,000
Right row has 30,000 records
Resulting recordset has 300,000,000 records
If no JOIN condition is specified, a CROSS JOIN
will be executed
13. Joins
J i each record t th other t bl
h d to the th table
15. How C
H Cross J i M k I
Joins Make Inner J i
Joins
Tables are joined using a CROSS JOIN
JOIN criteria is evaluated, removing all records
which d ’t match th “ON” condition
hi h don’t t h the diti
SELECT *
FROM Customers C
INNER JOIN Job J
ON C.CustID = J.CustID
The remaining rows are the recordset returned
for the INNER JOIN
19. Unpredictable R
U di t bl Record O d
d Orders
Databases are not required to return records in
any particular order
Records may be returned by the order they are
stored on disk or may be unordered, depending
on how the query engine handles data
If you need data in a particular order, use an
dd t i ti l d
ORDER BY clause
Some databases may return data presorted by
Primary key or Clustered index
DO NOT DEPEND on this behavior
It is not reliably portable across different databases
Do not make a program rely on a behavior not
specified by the program – bad programming style
21. What
Wh t are Indexes
I d
Indexes are a pre-sorted list of database
field values
This list speeds up queries A LOT
An index is much smaller than the full
recordset
An index tracks only the fields specified when
created
22. Indexes and P f
I d d Performance
Indexes GREATLY speed up queries on the
fields being indexed
Indexes SLIGHTLY slow d
I d l down INSERTS
INSERTS,
UPDATES and DELETES
The indexes need to be updated anytime a record
changes
This adds a small bit of overhead to the system
The increase in query speed usually greatly
offsets the slight extra load on INSERTS,
UPDATES and DELETES
Most database use is typically reading (instead of
writing)
23. Types of Indexes
T fI d
Simple Index
Indexesthe field specified
Can have multiple simple indexes
Speeds up queries using the indexed field
Composite Index
Indexescombinations of fields
Can have multiple composite indexes
Speeds up queries using the specified
combination of fi ld
bi ti f fields
24. Simple Indexes
Si l I d
An Index contains a list of all field values
and pointers to the record with that value
p
26. Composite I d
C it Indexes
Useful only when you will be querying multiple
fields simultaneously
Most selective (resulting in the fewest records
matching) fields should be listed first
Slight performance gain over multiple Simple
Indexes when used correctly
No performance gain (possibly even a
performance loss) when used incorrectly.
28. Searching I d
S hi Indexes
There are high performance algorithms for
high-performance
searching pre-sorted data
I d
Index data stored i t
d t t d internally as bi
ll binary t
trees
(typically)
Searching through
binary tree much
faster than reading
through table
30. Focus on what’s needed
F h t’ d d
Make your query as specific as possible
Makes joins simpler (and therefore faster)
Returns no unwanted data
Increases response time
Reduces network and server load
Put as much as possible in the WHERE
clause
J i your fi ld properly
Join fields l
31. Maximum S l ti it / S
M i Selectivity Specificity
ifi it
If differents parts of the WHERE clause
will result in smaller data sets than other
ones, list them the ones that will most
g
greatly reduce the data first
y
List the others in the same order
33. Horizontal P titi i
H i t l Partitioning
Avoid extremely “wide” records (records
with lots of fields)
)
Split data into two tables with a common
ID field
All the record data is rarely used in all
queries,
queries so it reduces traffic and speeds
up processing and disk reads
34. Add I d
Indexes
Make sure all fields searched on regularly
are indexed
35. Define Clustered Index
D fi Cl t d I d
The most-likely criteria to be sorted on
should be defined as your clustered index
y
Clustered index defines the order the
records will physically be stored on disk
36. Normalize D t
N li Data
No redundant data
Link related data
Don’t go crazy
37. Denormalize D t
D li Data
If joining more 4 tables or more in a single
q y,
query, consider de-normalizing data
g
(combining data from external tables back
into the main table))
Can return faster query results
Risks include having to manage duplicate
data in database and larger disk usage
38. Size records to fit database page
size
SQL Server 7.0, 2000, and 2005 data pages are
8K (8192 bytes) in size.
Of the
th 8192 available b t i each d t page, only
il bl bytes in h data l
8060 bytes are used to store a row. The rest is used
for overhead.
If you have a row that was 4031 bytes long, then only
one row could fit into a data page, and the remaining
4029 bytes left in the page would be empty
y p g py
Making each record 1 byte shorter would halve the disk
access required to read the table
39. Use Primary K
U aPi Key
Make sure you have a primary key defined
Ideally, it should be a single unique field
You can define composite keys, but they are
generally not needed if the database is designed
p p y
properly
Most tables should have a unique TableNameID
field
This allows you to identify any row by a single unique
value
40. Use
U an IDENTITY C l
Column
If there is:
no Primary Key on the table
no unique index on the table
Then
Add an IDENTITY (unique value) column to
the table
Optionally, index the IDENTITY column if you
will query it regularly
41. Move TEXT, NTEXT, and IMAGE
data into table
These types normally stored outside the
table (uses a pointer to the data in the
( p
field)
If these types will be searched frequently
frequently,
consider moving them into the database
table s
table’s storage with:
sp_tableoption 'tablename', 'text in row', 'on'
or
sp_tableoption 'tablename', 'text in row', 'size'
42. Consider R li ti i advance
C id Replication in d
If Replication is to be used, factor the
decision into the original design of the
g g
database
43. Use Built-in Referential I t it
U B ilt i R f ti l Integrity
Use foreign keys and validation
constraints built into the database
Don’t manage it in the application
Benefits:
Faster execution
Can’t mess it up with application errors
44. Re-test h
R t t when changing servers
h i
Retest and rebenchmark applications when
moving to a new server, such as:
Development
Staging
Production
Problems often caused b
P bl ft d by:
More rows in test data on servers “closer” to
production
Server configurations different
Tables not indexed the same way
45. Constraints are F t
C t i t Fast
Constraints on fields are faster than
Triggers
Rules
Defaults
46. Don’t duplicate ff t
D ’t d li t effort
Don’t check for the same thing twice
(duh, but it happens)
Don’t use a trigger and a constraint to do the
same thing g
Same for constraints and defaults
Same for constraints and rules
47. Limit
Li it records t b JOIN d
d to be JOINed
Use WHERE clause to minimize rows to
be JOINed.
Particularly in the OUTER table of an OUTER
JOIN
48. Index F i K
I d Foreign Keys
Fields in a table that are a foreign key are
not indexed automatically j
y just because
they are a foreign key.
Add these indexes manually
49. Minimize Duplicate
Mi i i D li t JOIN fi ld d t
field data
JOINs are slower when there are few
different keys in the j
y joining table
g
50. JOIN on unique indexed fi ld
i i d d fields
JOINs will perform fastest when joining
indexed fields with no duplicate data
p
51. JOIN Numeric Fi ld
N i Fields
JOINs on numeric fields perform much
faster than JOINs on other datatype fields.
yp
52. JOIN th exact same d t t
the t datatypes
JOINs should be to the exact same
datatype for best p
yp performance
Same type of field
Same field length
Same encoding (ASCII vs. Unicode, etc)
53. Use
U ANSI JOIN syntax
t
Improves readability
Less likely to cause programmer errors
No Aliases:
SELECT fname, lname, department
FROM names INNER JOIN departments ON
names.employeeid
names employeeid = departments employeeid
departments.employeeid
Microsoft syntax example:
SELECT fname, lname, department
FROM names departments
names,
WHERE names.employeeid = departments.employeeid
Code is more portable between databases
54. Use Table Aliases
U T bl Ali
Shortens code
Makes it easier to follow, especially with long queries
Identifies which table each field is coming from
No table aliases:
SELECT fname, lname, department
FROM names INNER JOIN departments ON
names.employeeid = departments.employeeid
Microsoft syntax example:
SELECT N.fname, N.lname, D.department
FROM names N INNER JOIN departments D ON
N.employeeid = D.employeeid
55. Don’t
D ’t use SELECT *
Requires additional parsing on the server to
extract field names
Returns unneccesary data (unless you are
actually using every field)
Returns duplicate data on JOINs (do you really
need two copies of the RecordID field?)
Can cause errors (in some databases) if JOINed
tables have fields with the same name
56. Store i separate fil in fil
St in t files i filegroup
For very large joins placing tables to be
j
joined in separate p y
p physical files within the
same filegroup can improve performance
SQL Server can spawn separate threads
for processing each file
57. Don’t
D ’t use CROSS JOINs
JOIN
Unless actually needed (rarely) do not use
a CROSS JOIN (returns all combinations
(
of records on both sides of JOIN)
People sometimes will do a CROSS JOIN
and then use DISTINCT and GROUP BY
to eliminate all the duplication
Don’t do that.
58. JOINs
JOIN vs. Subquery
S b
Depending on the specifics, either could be faster. Write
both and test performance to be sure which is best.
JOIN:
SELECT a.*
FROM Table1 a INNER JOIN Table2 b
ON a.Table1ID = b.Table1ID
WHERE b.Table2ID = 'SomeValue'
Subquery:
SELECT a.* FROM Table1 a WHERE Table1ID IN
a.
(SELECT Table1ID FROM Table2 WHERE Table2ID =
'SomeValue')
59. Avoid Subqueries unless needed
A id S b i l d d
Avoid subqueries unless actually required
Most subqueries can be expressed as
JOINs
Subqueries are generally harder to read
and understand (for humans) and,
therefore,
therefore maintain
60. Use an Indexed View
(Enterprise 2000 and later only)
An Indexed View maintains an updated
record of how the tables are joined via a
j
clustered index
This slows INSERTs, UPDATEs and
INSERTs
DELETEs a bit, so consider the tradeoff
for the faster queries
61. Use Database’s Performance
Database s
Optimization Tools
Most major databases have methods for
monitoring and optimizing database
g p g
performance
Google “databaseName optimizing” for
databaseName optimizing
tons of links
62. Avoid
A id DISTINCT when possible
h ibl
DISTINCT clauses are frequently (and usually
unintentionally) used to hide an incorrect JOIN
Properly normalized database will not frequently
need DISTINCT clauses
Look for incorrect JOINs or create more explicit
WHERE clauses to avoid needing DISTINCT
Of course, use it when appropriate
63. The End
(for now)
Google: Query Optimization
for lots more information