Where can I get help to pass Maya12-A exam?
Easy way to pass Maya12-A exam with these q&a and Exam Simulator.
Maya12-A model question | Maya12-A study tools | Maya12-A study guide | Maya12-A certification sample | Maya12-A training material - bigdiscountsales.com
Pass4sure Maya12-A Maya 2012 Certified Associate exam braindumps with real questions and practice software.
We have our experts working continuously for the collection of real exam questions of Maya12-A. All the pass4sure questions and answers of Maya12-A collected by our team are reviewed and updated by our Maya12-A certified team. We remain connected to the candidates appeared in the Maya12-A test to get their reviews about the Maya12-A test, we collect Maya12-A exam tips and tricks, their experience about the techniques used in the real Maya12-A exam, the mistakes they done in the real test and then improve our material accordingly. Once you go through our pass4sure questions and answers, you will feel confident about all the topics of test and feel that your knowledge has been greatly improved. These pass4sure questions and answers are not just practice questions, these are real exam questions and answers that are enough to pass the Maya12-A exam at first attempt.
Autodesk certifications are highly required across IT organizations. HR managers prefer candidates who not only have an understanding of the topic, but having completed certification exams in the subject. All the Autodesk certifications provided on Pass4sure are accepted worldwide.
Are you looking for pass4sure real exams questions and answers for the Maya 2012 Certified Associate exam? We are here to provide you one most updated and quality sources that is killexams.com. They have compiled a database of questions from actual exams in order to let you prepare and pass Maya12-A exam on the first attempt. All training materials on the killexams.com site are up to date and verified by industry experts.
Why killexams.com is the Ultimate choice for certification preparation?
1. A quality product that Help You Prepare for Your Exam:
killexams.com is the ultimate preparation source for passing the Autodesk Maya12-A exam. We have carefully complied and assembled real exam questions and answers, which are updated with the same frequency as real exam is updated, and reviewed by industry experts. Our Autodesk certified experts from multiple organizations are talented and qualified / certified individuals who have reviewed each question and answer and explanation section in order to help you understand the concept and pass the Autodesk exam. The best way to prepare Maya12-A exam is not reading a text book, but taking practice real questions and understanding the correct answers. Practice questions help prepare you for not only the concepts, but also the method in which questions and answer options are presented during the real exam.
2. User Friendly Mobile Device Access:
killexams provide extremely user friendly access to killexams.com products. The focus of the website is to provide accurate, updated, and to the point material to help you study and pass the Maya 2012 Certified Associate. You can quickly get the real questions and answer database. The site is mobile friendly to allow study anywhere, as long as you have internet connection. You can just load the PDF in mobile and study anywhere.
3. Access the Most Recent Maya 2012 Certified Associate Real Questions & Answers:
Our Exam databases are regularly updated throughout the year to include the latest real questions and answers from the Autodesk Maya12-A exam. Having Accurate, authentic and current real exam questions, you will pass your exam on the first try!
4. Our Materials is Verified by killexams.com Industry Experts:
We are doing struggle to providing you with accurate Maya 2012 Certified Associate exam questions & answers, along with explanations. We make the value of your time and money, that is why every question and answer on Pass4sure has been verified by Autodesk certified experts. They are highly qualified and certified individuals, who have many years of professional experience related to the Autodesk exams.
5. We Provide all killexams.com Exam Questions and Include Detailed Answers with Explanations:
Killexams.com Huge Discount Coupons and Promo Codes are as under;
WC2017 : 60% Discount Coupon for all exams on website
PROF17 : 10% Discount Coupon for Orders greater than $69
DEAL17 : 15% Discount Coupon for Orders greater than $99
DECSPECIAL : 10% Special Discount Coupon for All Orders
Unlike many other exam prep websites, killexams.com provides not only updated actual Autodesk Maya12-A exam questions, but also detailed answers, explanations and diagrams. This is important to help the candidate not only understand the correct answer, but also details about the options that were incorrect.
Discount Coupon, Promo Codes, Maya12-A vce, Free Maya12-A vce, Download Free Maya12-A dumps, Free Maya12-A braindumps, pass4sure Maya12-A, Maya12-A practice test, Maya12-A practice exam, killexams.com Maya12-A, Maya12-A real questions, Maya12-A actual test, Maya12-A PDF download, Pass4sure Maya12-A Download, Maya12-A help, Maya12-A examcollection, Passleader Maya12-A, exam-labs Maya12-A, Justcertify Maya12-A, certqueen Maya12-A, Maya12-A testking
want something fast making ready for Maya12-A.By enrolling me for killexams.com is an opportunity to get myself cleared in Maya12-A exam. Its a chance to get myself through the difficult questions of Maya12-A exam. If I could not have the chance to join this site I would have not been able to clear Maya12-A exam. It was a glancing opportunity for me that I got success in it so easily and made myself so comfortable joining this site. After failing in this exam I was shattered and then I found this site that made my way very easy.
Very easy way to bypass Maya12-A examination with q and a and exam Simulator.I was very disappointed when I failed my Maya12-A exam. Searching the internet told me that there is a website killexams.com which is the resources that I need to pass the Maya12-A exam within no time. I buy the Maya12-A preparation pack containing questions answers and exam simulator, prepared and sit in the exam and got 98% marks. Thanks to the killexams.com team.
Get high scores in little time for preparation.i bought Maya12-A instruction % and passed the examination. No issues in any respect, the whole lot is exactly as they promise. smooth exam experience, no problems to record. thank you.
I got extraordinary Questions bank for my Maya12-A examination.You need to ace your on line Maya12-A tests i've a first-class and easy manner of this and that is killexams.com and its Maya12-A check examples papers which can be a actual picture of final take a look at of Maya12-A exam tests. My percent in very lastcheck is 95%. killexams.com is a product for those who usually want to move on of their life and want to do somethingextra ordinary. Maya12-A trial take a look at has the potential to beautify your confidence level.
Is there any way to clear Maya12-A exam before everything attempt?Preparing for Maya12-A books can be a tricky job and nine out of ten chances are that you will fail if you do it without any appropriate guidance. Thats where best Maya12-A book comes in! It provides you with efficient and groovy information that not only enhances your preparation but also gives you a clear cut chance of passing your Maya12-A download and getting into any university without any despair. I prepared through this terrific program and I scored 42 marks out of 50. I can assure you that it will never let you down!
Take complete gain of Maya12-A actual examination Q&A and get certified.Failure to lie in the ones that means that it became the ones very moments that we couldnt learn to neglect however now we all realize that whether or not or now not there was some purpose to the little thing that we couldnt now not see simply but the ones stuff that we werent imagined to understand so now you should know that I cleared my Maya12-A test and it became higher than anything and yes I did with Killexams.com and it wasnt this type of bad aspect in any respect to examine on line for a alternate and not sulk at home with my books.
discovered an genuine source for actual Maya12-A exam questions.that is the satisfactory exam readiness i have ever long past over. I passed this Maya12-A partner exam bother loose. No shove, no anxiety, and no sadness amid the exam. I knew all that I required to understand from this killexams.com Q&A p.c.. The inquiries are great, and that i were given notification from my partner that their coins lower back surety lives up toexpectations.
Download and Try out these real Maya12-A question bank.killexams.com questions and solutions helped me to know what exactly is expected within the examination Maya12-A. I organized well inside 10 days of education and completed all of the questions of exam in 80 minutes. It incorporate the subjects much like exam point of view and makes you memorize all of the topics easily and correctly. It also helped me to realize the way to control the time to complete the examination before time. it's miles great method.
brief, complete and genuine Q&A bank of Maya12-A examination.As a guaranteed authority, I knew I want to take assistance from Dumps on the off risk that I want to clean the extreme examination like Maya12-A. moreover i used to be correct. The killexams.com Dumps have an interesting approach to make the difficult topics easy. They manage them in brief, simple and genuine way. straight forward and don't forget them. I did so and could solution all the questions in half of time. splendid, killexams.com dumpss a genuine partner in need.
Is there a person who surpassed Maya12-A examination?I spent enough time studying these materials and passed the Maya12-A exam. The stuff is good, and whilst those are braindumps, meaning these substances are constructed at the real exam stuff, I dont apprehend folks who try to bitch aboutthe Maya12-A questions being exceptional. In my case, now not all questions were one hundred% the equal, but the topics and widespread approach had been surely accurate. So, buddies, if you take a look at tough sufficient youll do just fine.
See more Autodesk dumpsMaya12-A | MAYA11-A |
Latest Exams added on bigdiscountsales1Z0-453 | 210-250 | 300-210 | 500-205 | 500-210 | 70-765 | 9A0-409 | C2010-555 | C2090-136 | C9010-260 | C9010-262 | C9020-560 | C9020-568 | C9050-042 | C9050-548 | C9050-549 | C9510-819 | C9520-911 | C9520-923 | C9520-928 | C9520-929 | C9550-512 | CPIM-BSP | C_TADM70_73 | C_TB1200_92 | C_TBW60_74 | C_TPLM22_64 | C_TPLM50_95 | DNDNS-200 | DSDPS-200 | E20-562 | E20-624 | E_HANABW151 | E_HANAINS151 | JN0-1330 | JN0-346 | JN0-661 | MA0-104 | MB2-711 | NSE6 | OMG-OCRES-A300 | P5050-031 |
See more dumps on bigdiscountsales70-521-Csharp | 310-200 | GB0-190 | P2180-089 | 1Z0-521 | C9010-252 | 156-915-65 | 190-956 | HP0-782 | 000-884 | HP0-P11 | HP2-Z12 | 000-915 | 156-110 | HP3-C17 | MB5-199 | C_TBI30_73 | 3M0-331 | JK0-801 | 310-015 | 9A0-044 | 9A0-097 | C2090-620 | C2070-587 | 000-610 | 000-094 | M2090-732 | JN0-322 | P2020-795 | PTCE | HP2-K21 | C2060-350 | HH0-450 | A2040-402 | ICDL-IT | A00-240 | HH0-450 | 642-243 | E20-651 | 000-N52 | 000-900 | COG-310 | P8060-028 | HP0-S17 | A2040-951 | MOS-E2E | 000-799 | 3302 | A2010-654 | C2010-569 |
Maya12-A Questions and Answers
Identify the Tumble camera Icon in the images below.
- Option A
- option B
- Option C
- Option D
What will a Dmap shadow do that a Raytrace Shadow will not? A Dmap shadow will...
- be visible in an IPR.Bcreate volumetric shadows through a light fog.
- producescorrect shadows from transparent colored surfaces
- producescorrect shadows from Cloud Render Type particles
Which of the following is NOT a type of Flexor?
Reference: www.autodesk.com/us/maya/2011help/index.html?url=./files/Viewing_the_scene_Using_t he_ViewCube.htm,topicNumber=d0e70082
Which is the correct method to make the current transformations on the selected object be the object's zero position
- Edit>Delete option
- Modify>Freeze Transformations option.
- Modify>Delete Attribute Transformations option.
- Skeleton>OrientJoint>Freeze Transformations option
To control a Soft Body simula-tion that is out of hand, you can...
- use Springs to control the simulation if it gets erratic
- use a Pin Constraint to 'pin down' the particles that act erratically during the simulation
- use an nDynamics solver to control the simulation
- use rigid bodies and convertsthem to soft bodies.
Autodesk Maya12-A Exam (Maya 2012 Certified Associate) Detailed InformationCertification
From academia and throughout your professional career, Autodesk provides educational resources—instructor-led, self-paced, or online training—and certification to help you stay competitive.
Competition for talent is fierce in today’s marketplace. Universities want to enroll the smartest, most committed students and equip them for professional success after they graduate. Employers want to attract and retain well-qualified, ambitious professionals who not only work hard, but also help them win new projects and gain industry recognition. Students and professionals just want to get ahead—and stay there.
Stand out with an Autodesk Certification
Earn an industry-recognized credential that helps prove your skill level and can get you hired.
Accelerate your professional development and help enhance your credibility and career success.
Validate your skills and join an elite team of Autodesk Certified professionals.
Display your Autodesk Certified certificate, use the Autodesk Certified logo, highlight your achievement and get noticed by listing your name in the Autodesk Certified Professionals database
Training and Certification
From academia and throughout your professional career, Autodesk provides educational resources—instructor-led, self-paced, or online training—and certification to help you stay competitive.
Learning & training
Kick-start your professional development with Autodesk authorized software product training.
Earn an Autodesk credential, whether you are just starting out or have years of experience, and gain industry recognition
Employers and educational institutions can offer Autodesk Certification to employees and students to validate their skills
Education services & support
Autodesk Authorized Academic Partners (AAP) provide customized training and support services to educators, schools, colleges, and universities which shape the future of design engineering education and aid in successful adoption of Autodesk solutions into the curriculum, while preparing students for an always-changing world in which design will play a pivotal role.
Authorized Training Centers
Accelerate your Autodesk training by reaching out to an Autodesk Authorized Training Center (ATC). Work with knowledgeable instructors in quiet classroom settings utilizing sample projects and exercises that emphasize real-world, practical applications. ATC sites around the world offer a variety of courses, and many can help you prepare for an Autodesk Certification.
At an Autodesk Authorized Training Center, you can:
Learn from highly qualified instructors at superior facilities
Develop your skills with sample projects and exercises that emphasize real-world applications
Choose a class at the most appropriate skill level to meet your needs
Meet at a time convenient for you, or sign up for custom, on-site training
Earn a valuable certificate of completion that’s recognized in your profession
Validate your product knowledge by getting Autodesk Certified when you take a certification exam at a participating ATC test delivery facility
Many ATC courses are accepted by professional associations, including the American Institute of Architects (AIA). Ask your local Autodesk ATC about earning credits for mandatory continuing education classes and other professional development programs.
Maya12_A Exam Questions - Pass In First Attemptissuu company logo
SQL Azure Federation – Features & UsageThis is the second post about SQL Azure Federation. In my first post I described a little bit about the theory of data partitioning, included the different between the horizontal partitioning and the vertical partitioning. I also talked about the features need to be done when we implemented the horizontal partitioning. And finally, I described some basic concept about SQL Azure Federation.
In this post, I will demonstrate how to use SQL Azure Federation in the SQL Server Management Studio (SSMS). I will also demonstrate the benefit of using SQL Azure Federation to build the multi-tenant data solution.
Create Federation and Tables
SQL Azure Federation is officially available for every Windows Azure data centers. There no additional register or sign up process. When we create a new server or database in SQL Azure, we can use SQL Azure Federation. For example, I had created a new database in my SQL Azure server which located in East Asia data center. Then I can open my SSMS and connect to this SQL Azure server and use SQL Azure Federation.
Do not forget to set the SQL Azure firewall before you connect to the server from local tools such as SSMS.
In this post I would like to take a very simple scenario as the example. Assuming we have a multi-tenant CRM system which contains accounts, contacts for each tenants. We also have some lookup data such as countries and titles. We also have one table contains some metadata for each tenants. So the database diagram would be like this.
In SQL Azure Federation, if we decided to split some tables we must have the federation ready, then create the tables that wanted to be federated based on the federation. There is no way in SQL Azure Federation to switch tables between the federated and non-federated or reference. So before we start to create the tables we need to firstly define the federation.
Since we decided to have the tenant ID as the key when splitting the database, the federation distribution should be INT type, which is the same as the type of TenantID in the tables.
In order to create the federation, in SSMS connect to the database and execute the T-SQL below.
1: CREATE FEDERATION Tenant_Fed (TID INT RANGE) 2: GO
There’s nothing special happened after we executed this T-SQL in SSMS. But in SQL Azure fabric, it created a database which represent our first federation member. The federation member database name was specified by SQL Azure which was a GUID with “system-” prefixed. And the original database, which we created and are connecting now, became the root database.
After that, all tables in our system should be in one of these three types.
Table Type Description Where Federated Table Tables that will be split based on the federation and their federation columns. Federation Members Reference Table Tables that will not be split, but should be referred by the federated table. These tables will be copied across all federation members. Federation Members Centre Table Tables that will not be split, and very rarely join-select with the tables in federation members. Federation Root
For the federated table and reference table, we need to create them in a federation member, so that when we split this member, SQL Azure Federation will help us to create them in the new member. In order to connect to a federation member we need to execute the T-SQL below.
1: USE FEDERATION Tenant_Fed (TID = 0) WITH RESET, FILTERING = OFF 2: GO
If you are familiar with SQL Azure you should be already know that the USE keyword doesn’t work in SQL Azure. But if we specify the FEDERATION keyword and the federation name it will switch our connection to the federation member database, which contains the distribution key value we specified here (TID = 0). And if we connected to this federation member we can retrieve the database name by using the db_name() function. As you can see in my workstation my first federation member database name was “system-06d60081-6737-413e-85b1-df65cb55f1c9”.
Now we have been connecting to the federation member and the next step is to create the federated tables. Based on our design the Account and table should be partitioning by their TenantID column so let’s create them by the following T-SQL.
1: CREATE TABLE [dbo].[Account]( 2: [ID] [int] NOT NULL, 3: [TenantID] [int] NOT NULL, 4: [Name] [varchar](50) NOT NULL, 5: [CountryID] [int] NOT NULL, 6: CONSTRAINT [PK_Account] PRIMARY KEY CLUSTERED 7: ( 8: [ID] ASC 9: )WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) 10: ) 11: FEDERATED ON (TID = TenantID) 12: GO
In the T-SQL above we are going to create the Account table with fields and primary key. And at the end of the statement we defined that the TenantID column is the federated column of this table. This means, when SQL Azure Federation split the table it will look up the value of TenantID, decided which rows should be in which member.
But when we executed we will get an error that the primary key index could not be created since the index doesn’t contain the federated column.
This is a limitation in SQL Azure Federation. The federated column in a federated table must be the clustered index, or be in the clustered index. Since we defined the ID as the primary key of the Account table, to satisfied this limitation we must include the TenantID as the primary key as well. So our T-SQL should be like this.
1: CREATE TABLE [dbo].[Account]( 2: [ID] [int] NOT NULL, 3: [TenantID] [int] NOT NULL, 4: [Name] [varchar](50) NOT NULL, 5: [CountryID] [int] NOT NULL, 6: CONSTRAINT [PK_Account] PRIMARY KEY CLUSTERED 7: ( 8: [ID] ASC, 9: [TenantID] ASC 10: )WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) 11: ) 12: FEDERATED ON (TID = TenantID) 13: GO
And similarly, in table we also need to add the TenantID column as the primary key. We also need to amend the foreign keys as well. The T-SQL should be like this.
There is no constraint that the federation column name should be the same in each federated tables. We can specify the federation key to the different columns that has different names in each federated tables when created the tables. For example in Account table we link TID = TenantID while in table we link TID = Tenant_ID or TID = T_ID, etc..
1: CREATE TABLE [dbo].( 2: [ID] [int] NOT NULL, 3: [TenantID] [int] NOT NULL, 4: [AccountID] [int] NOT NULL, 5: [Name] [varchar](50) NOT NULL, 6: [TitleID] [int] NOT NULL, 7: CONSTRAINT [PK_] PRIMARY KEY CLUSTERED 8: ( 9: [ID] ASC, 10: [TenantID] ASC 11: )WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) 12: ) 13: FEDERATED ON (TID = [TenantID]) 14: GO 15: 16: ALTER TABLE [dbo].[Account] WITH CHECK ADD CONSTRAINT [FK_Account_Country] FOREIGN KEY([CountryID]) 17: REFERENCES [dbo].[Country] ([ID]) 18: GO 19: ALTER TABLE [dbo].[Account] CHECK CONSTRAINT [FK_Account_Country] 20: GO 21: ALTER TABLE [dbo]. WITH CHECK ADD CONSTRAINT [FK__Account] FOREIGN KEY([AccountID], [TenantID]) 22: REFERENCES [dbo].[Account] ([ID], [TenantID]) 23: GO 24: ALTER TABLE [dbo]. CHECK CONSTRAINT [FK__Account] 25: GO 26: ALTER TABLE [dbo]. WITH CHECK ADD CONSTRAINT [FK__Title] FOREIGN KEY([TitleID]) 27: REFERENCES [dbo].[Title] ([ID]) 28: GO 29: ALTER TABLE [dbo]. CHECK CONSTRAINT [FK__Title] 30: GO
Now we have the federated tables created in our first federation member. Next let’s create the reference tables. In this case the reference tables are County and Title. They don’t have the column related with the federation distribution key, which is the tenant ID in our example. But they need to be selected alone with the federated tables. For example we might need to retrieve the account information for a tenant with the country name. So they need to be added as reference tables.
To create a reference table in a federation member would be the same as what we did on a normal database, no need to specify the federated column in the CREATE TABLE statement.
1: CREATE TABLE [dbo].[Title]( 2: [ID] [int] NOT NULL, 3: [Title] [varchar](50) NOT NULL, 4: CONSTRAINT [PK_Title] PRIMARY KEY CLUSTERED 5: ( 6: [ID] ASC 7: )WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) 8: ) 9: GO 10: 11: CREATE TABLE [dbo].[Country]( 12: [ID] [int] NOT NULL, 13: [Country] [varchar](50) NOT NULL, 14: CONSTRAINT [PK_Country] PRIMARY KEY CLUSTERED 15: ( 16: [ID] ASC 17: )WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) 18: ) 19: GO 20: 21: ALTER TABLE [dbo].[Account] WITH CHECK ADD CONSTRAINT [FK_Account_Country] FOREIGN KEY([CountryID]) 22: REFERENCES [dbo].[Country] ([ID]) 23: GO 24: ALTER TABLE [dbo].[Account] CHECK CONSTRAINT [FK_Account_Country] 25: GO 26: 27: ALTER TABLE [dbo]. WITH CHECK ADD CONSTRAINT [FK__Title] FOREIGN KEY([TitleID]) 28: REFERENCES [dbo].[Title] ([ID]) 29: GO 30: ALTER TABLE [dbo]. CHECK CONSTRAINT [FK__Title] 31: GO
And in the T-SQL above we also added the foreign keys between the reference tables and federated tables. It’s possible to add the foreign keys between the federated tables, like what we added between the Account and . It’s possible to add the foreign key from the federated table to reference table, like the key between Account and Country. But it’s not allowed to add the foreign key from a non-federated table to a federated table. For example we cannot add a foreign key between the Account to a table in the federation root.
Now we have all tables and keys ready in our first federation member. Let’s add some sample data.
1: INSERT INTO Country VALUES (1, 'China') 2: INSERT INTO Country VALUES (2, 'US') 3: INSERT INTO Country VALUES (3, 'UK') 4: 5: INSERT INTO Title VALUES (1, 'Mr') 6: INSERT INTO Title VALUES (2, 'Ms') 7: 8: INSERT INTO Account VALUES (1, 1, 'Tenant 1 - Account 1', 1) 9: INSERT INTO Account VALUES (2, 1, 'Tenant 1 - Account 2', 2) 10: INSERT INTO Account VALUES (3, 2, 'Tenant 2 - Account 3', 3) 11: INSERT INTO Account VALUES (4, 2, 'Tenant 2 - Account 4', 1) 12: INSERT INTO Account VALUES (5, 3, 'Tenant 3 - Account 5', 2) 13: INSERT INTO Account VALUES (6, 3, 'Tenant 3 - Account 6', 3) 14: INSERT INTO Account VALUES (7, 4, 'Tenant 4 - Account 7', 1) 15: INSERT INTO Account VALUES (8, 4, 'Tenant 4 - Account 8', 2) 16: INSERT INTO Account VALUES (9, 5, 'Tenant 5 - Account 9', 3) 17: INSERT INTO Account VALUES (10, 5, 'Tenant 5 - Account 10', 1) 18: 19: 20: INSERT INTO VALUES (1, 1, 1, 'Tenant 1 - Account 1 - 1', 1) 21: INSERT INTO VALUES (2, 1, 1, 'Tenant 1 - Account 1 - 2', 2) 22: INSERT INTO VALUES (3, 1, 1, 'Tenant 1 - Account 1 - 3', 1) 23: INSERT INTO VALUES (4, 1, 2, 'Tenant 1 - Account 2 - 4', 2) 24: INSERT INTO VALUES (5, 1, 2, 'Tenant 1 - Account 2 - 5', 1) 25: INSERT INTO VALUES (6, 1, 2, 'Tenant 1 - Account 2 - 6', 2) 26: INSERT INTO VALUES (7, 2, 3, 'Tenant 2 - Account 3 - 7', 1) 27: INSERT INTO VALUES (8, 2, 3, 'Tenant 2 - Account 3 - 8', 2) 28: INSERT INTO VALUES (9, 2, 3, 'Tenant 2 - Account 3 - 9', 1) 29: INSERT INTO VALUES (10, 2, 4, 'Tenant 2 - Account 4 - 10', 2) 30: INSERT INTO VALUES (11, 2, 4, 'Tenant 2 - Account 4 - 11', 1) 31: INSERT INTO VALUES (12, 2, 4, 'Tenant 2 - Account 4 - 12', 2) 32: INSERT INTO VALUES (13, 3, 5, 'Tenant 3 - Account 5 - 13', 1) 33: INSERT INTO VALUES (14, 3, 5, 'Tenant 3 - Account 5 - 14', 2) 34: INSERT INTO VALUES (15, 3, 5, 'Tenant 3 - Account 5 - 15', 1) 35: INSERT INTO VALUES (16, 3, 6, 'Tenant 3 - Account 6 - 16', 2) 36: INSERT INTO VALUES (17, 3, 6, 'Tenant 3 - Account 6 - 17', 1) 37: INSERT INTO VALUES (18, 3, 6, 'Tenant 3 - Account 6 - 18', 2) 38: INSERT INTO VALUES (19, 4, 7, 'Tenant 4 - Account 7 - 19', 1) 39: INSERT INTO VALUES (20, 4, 7, 'Tenant 4 - Account 7 - 20', 2) 40: INSERT INTO VALUES (21, 4, 7, 'Tenant 4 - Account 7 - 21', 1) 41: INSERT INTO VALUES (22, 4, 8, 'Tenant 4 - Account 8 - 22', 2) 42: INSERT INTO VALUES (23, 4, 8, 'Tenant 4 - Account 8 - 23', 1) 43: INSERT INTO VALUES (24, 4, 8, 'Tenant 4 - Account 8 - 24', 2) 44: INSERT INTO VALUES (25, 5, 9, 'Tenant 5 - Account 9 - 25', 1) 45: INSERT INTO VALUES (26, 5, 9, 'Tenant 5 - Account 9 - 26', 2) 46: INSERT INTO VALUES (27, 5, 9, 'Tenant 5 - Account 9 - 27', 1) 47: INSERT INTO VALUES (28, 5, 10, 'Tenant 5 - Account 10 - 28', 2) 48: INSERT INTO VALUES (29, 5, 10, 'Tenant 5 - Account 10 - 29', 1) 49: INSERT INTO VALUES (30, 5, 10, 'Tenant 5 - Account 10 - 30', 2)
After executed these T-SQL we had put all data in our first federation member. It contains two references tables (Country, Title) and two federated tables (Account, ), and some foreign keys between the reference table and federated table.
And we can select the data in this federation member with the tables joining, for example the T-SQL below will list all accounts and contacts information.
1: SELECT Account.Name, Country.Country, .Name, Title.Title FROM 2: LEFT JOIN Account ON AccountID = Account.ID 3: LEFT JOIN Country ON Account.CountryID = Country.ID 4: LEFT JOIN Title ON .TitleID = Title.ID Split Federation Member
The key feature of SQL Azure Federation is to split a federation member into two based on the federated value specified without any downtime. Since we have inserted some data in our first federation member, let’s split it into two.
Split a federation member is very easy. We use the ALTER FEDERATION command and specify from what value of the distribution key to split. For example, since the federation distribution key is the TID (tenant ID), we will split all federated tables based on their federated column value at 3. This means all data that the tenant ID is less than 3 will be in the federation member 1 while others will be in the federation member 2.
In order to split the federation we need to firstly connect to the federation root, and then execute the ALTER FEDERATION command specifying the boundary value.
1: USE FEDERATION ROOT WITH RESET 2: GO 3: 4: ALTER FEDERATION Tenant_Fed SPLIT AT (TID = 3) 5: GO
When execute this command the SQL Azure engine will perform the operations listed below.
1: USE FEDERATION Tenant_Fed (TID = 4) WITH RESET, FILTERING = OFF 2: GO
Then execute the command we had just preformed before to see the data in this federation member.
1: SELECT Account.Name, Country.Country, .Name, Title.Title 2: FROM 3: LEFT JOIN Account ON AccountID = Account.ID 4: LEFT JOIN Country ON Account.CountryID = Country.ID 5: LEFT JOIN Title ON .TitleID = Title.ID
And as you can see, the SSMS returned the data that the tenant ID is equal or more than 4.
And if we want to see the data in the first member, we can just specify the TID = 0, 1 or 2, any value less than the boundary value of that federation member.
Connect to Atomic Unit
When we connected to a federation member we use the USE FEDERATION command. There’s a clause in this T-SQL statement which is FILTERING = OFF. In the example above we can select all data in the federation member unless we didn’t put any criteria in WHERE clause in SELECT command. This is because we utilized FILTERING = OFF. It will make the connection scope set to the full range covered by the federation member containing the specified key value. The connection behaves the same if it were connected to the member through its physical federation member name (the database name).
SQL Azure Federation provides another valuable feature that can force the connection scope set to the federation key instance (federation key value) in a federation member rather than to the full range of federation member, by using FILTERING = ON clause.
So let’s have a try and to see what will happen if we set the FILTERING = ON. At this time we still specify the SSMS to use federation where the key equals to 2 but specify the FILTERING = ON, and select the data without any criteria.
1: USE FEDERATION Tenant_Fed (TID = 2) WITH RESET, FILTERING = ON 2: GO 3: 4: SELECT Account.Name, Country.Country, .Name, Title.Title 5: FROM 6: LEFT JOIN Account ON AccountID = Account.ID 7: LEFT JOIN Country ON Account.CountryID = Country.ID 8: LEFT JOIN Title ON .TitleID = Title.ID
Now we can see that only the records that the TenantID = 2 were returned. We didn’t provide anything in the WHERE clause in SELECT command but it worked as if we specified WHERE TenantID = 2. This is the benefit that using the FILTERING = ON in the USE FEDERATION command.
We mentioned in the previous post, in SQL Azure Federation all records that related with the same federation key value in a federation member is called an Atomic Unit. In the case above we connected to the federation member’s atomic unit which the value is TenantID = 2, by using the FILTERING = ON clause.
This feature is very useful especially when we need to migrate a single tenant application to multi-tenant style. As you know we might need to add the tenant identity column in the tables that tenant-award when migrating, but this might lead us to rewrite all related SQL scripts. For example if we have a SQL script that retrieves all data in table Order, it might look like this in single tenant application.
1: SELECT Order.ID, Order.Name FROM Order
But if we implemented the multi-tenant feature we have to add the TenantID column in this table to indicate which tenant the order is. And accordingly we have to rewrite the SQL script if a participant tenant user is currently logging on.
1: SELECT Order.ID, Order.Name FROM Order 2: WHERE Order.TenantID = UserTenentID
Assuming that we have 50 tables that are tenant-award and 10 scripts for each table. Then we need to amend 50 * 10 = 500 SQL scripts. And almost all changes are very similar.
But if we are using SQL Azure Federation we can make the tenant ID as the federation distribution key and let the tables split based on their TenantID column. Then if we have an user logged in under a tenant, we can invoke the USE FEDERATION statement specifying the TenantID value with FILTERING = ON before any data command, then all following SQL scripts will no need to be changed since the SQL Azure Federation helped us to filter the connection scope to this tenant. This can be done very easily by using AOP.
In this post I demonstrated how to use SQL Azure Federation. We talked about how to create federation, federation members and tables. And we demonstrated how to split a federation member, which is horizontal data partitioning without any downtime.
I also talked about the feature of FILTERING = ON in USE FEDERATION statement and the benefit in multi-tenant solution.
SQL Azure Federation is a very powerful tool for us to build scale-out andor multi-tenant application. In the coming few posts I would like to discuss the metadata system of the federation, the pricing and how to split the federation members based on the data size or record count.
And I would like to introduce on how to implement our own horizontal partitioning data access layer without SQL Azure Federation available.
Hope this helps,
All documents and related graphics, codes are provided "AS IS" without warranty of any kind. Shaun Ziyan Xu. This work is licensed under the Creative Commons License.